본문 바로가기

jsp

데이터베이스 입력: 사용자로부터 데이터를 입력받아 데이터베이스에 저장하는 예제.

반응형

데이터베이스 입력은 사용자로부터 정보를 받아 그 정보를 데이터베이스에 저장하는 프로세스입니다. JSP와 JDBC를 사용하여 이를 수행할 수 있습니다. 아래는 사용자로부터 데이터를 입력받아 데이터베이스에 저장하는 두 가지 예제입니다.

예제 1: 사용자 입력을 받아 데이터베이스에 저장

이 예제에서는 사용자로부터 이름과 이메일을 입력 받아 데이터베이스의 특정 테이블에 저장합니다.

inputForm.jsp

<!DOCTYPE html>
<html>
<head>
    <title>User Data Input</title>
</head>
<body>
    <form action="saveData.jsp" method="post">
        Name: <input type="text" name="name"><br>
        Email: <input type="text" name="email"><br>
        <input type="submit" value="Submit">
    </form>
</body>
</html>

saveData.jsp

<%@ page import="java.sql.*" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Save User Data</title>
</head>
<body>
<%
    String name = request.getParameter("name");
    String email = request.getParameter("email");

    // 데이터베이스 설정 정보
    String url = "jdbc:mysql://localhost:3306/YourDatabase"; // 데이터베이스 URL
    String user = "root"; // 데이터베이스 사용자 이름
    String password = "rootpassword"; // 데이터베이스 비밀번호

    try {
        // 데이터베이스 연결
        Class.forName("com.mysql.cj.jdbc.Driver");
        Connection con = DriverManager.getConnection(url, user, password);

        // SQL 쿼리 준비
        String sql = "INSERT INTO users (name, email) VALUES (?, ?)";
        PreparedStatement pstmt = con.prepareStatement(sql);

        // 파라미터 설정
        pstmt.setString(1, name);
        pstmt.setString(2, email);

        // 쿼리 실행
        int rows = pstmt.executeUpdate();
        out.println("Data has been inserted successfully.");

        // 자원 해제
        pstmt.close();
        con.close();
    } catch(Exception e) {
        e.printStackTrace();
    }
%>
</body>
</html>

관련 전문용어 설명

  • JDBC (Java Database Connectivity): 자바 애플리케이션에서 데이터베이스에 접근하기 위한 API입니다. 다양한 SQL 데이터베이스에 대한 접근을 제공합니다.
  • PreparedStatement: SQL 쿼리를 표현하는 객체로, 쿼리에 파라미터를 동적으로 설정할 수 있습니다. SQL 인젝션 공격을 방지하는 데 유용합니다.
  • executeUpdate(): 데이터베이스에 쓰기 작업(INSERT, UPDATE, DELETE 등)을 수행할 때 사용하는 메소드입니다. 영향을 받은 행의 수를 반환합니다.
반응형