상세 컨텐츠

본문 제목

[JSP]데이터베이스연동_INSERT INTO_ 폼_데이터입력_DB에 저장하기

<개인공부>/[JSP]

by 데브수달 2024. 4. 24. 18:02

본문

728x90
반응형

 

 

# DB 코딩
```SQL
+-----------+--------------+------+-----+---------------------+-------+
| Field     | Type         | Null | Key | Default             | Extra |
+-----------+--------------+------+-----+---------------------+-------+
| userName  | varchar(16)  | NO   | PRI | NULL                |       |
| userStore | varchar(16)  | NO   |     | NULL                |       |
| userMeum  | varchar(30)  | NO   |     | NULL                |       |
| userText  | varchar(250) | NO   |     | NULL                |       |
| userGaib  | timestamp    | NO   |     | current_timestamp() |       |
+-----------+--------------+------+-----+---------------------+-------+


```
# index.html 코딩
```HTML
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
    <title>방문자리뷰</title>
</head>
<body>
    <div id="wrap">
        <form name='review' method='post' action='http://localhost:8080/shop/review_action.jsp'>
            <ul>
                <li>
                    <input type='text' name='userName' id='userName' placeholder='이름' />
                </li>
                <li>
                    <input type='text' name='userStore' id='userStore' placeholder='방문한 곳 입력하세요.' />
                </li>
                <li>
                    <input type='text' name='userMeum' id='userMeum' placeholder='먹은 음식 입력하세요.' />
                </li>
                <li>
                    <input type='text' name='userText' id='userText' placeholder='리뷰를 작성해주세요.' />
                </li>
            </ul>
            <div>
                <button type='submit' class='submit-btn'>글 남기기</button>
            </div>
        </form>
    </div>
</body>
</html>

```

# DTO 코딩
```JAVA
package shop;

public class ReviewDTO {
    private String userName;
    private String userStore;
    private String userMeum;
    private String userText;
   
    public String getUserName() {
        return userName;
    }
    public String getUserStore() {
        return userStore;
    }
    public String getUserMeum() {
        return userMeum;
    }
    public String getUserText() {
        return userText;
    }
    public void setUserName(String userName) {
        this.userName = userName;
    }
    public void setUserStore(String userStore) {
        this.userStore = userStore;
    }
    public void setUserMeum(String userMeum) {
        this.userMeum = userMeum;
    }
    public void setUserText(String userText) {
        this.userText = userText;
    }
}

```

# JSP 코딩
```JSP
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="java.sql.*" %>
   
<%  
    request.setCharacterEncoding("UTF-8");
%>


<jsp:useBean id="reviewDTO" class="shop.ReviewDTO" scope="page" />
<jsp:setProperty property="userName" name="reviewDTO" />
<jsp:setProperty property="userStore" name="reviewDTO" />
<jsp:setProperty property="userMeum" name="reviewDTO" />
<jsp:setProperty property="userText" name="reviewDTO" />

<%
    // import="java.sql.*"
    // 컨넥션 변수 conn, ps, rs(result set), SQL   => 변수 4개 설정 필요하다.
    Connection conn = null; // 컨넥션 => 인가받은 접속 정보
    PreparedStatement ps = null; // 프리페어드스테이트먼트 =>PrepareStatement(sql) 실행 결과 변수 => 매개변수 value => ? : ps
    ResultSet rs = null;  // 리절트셋 => 쿼리를 실행 executeQuery() 익스큐트 쿼리 실행 결과 변수 테이블 데이터 가져오기 => 사용
    String sql = null;  // sql 문자열 변수
   
   
    try{
        Class.forName("org.mariadb.jdbc.Driver");
        conn = DriverManager.getConnection( "jdbc:mariadb://localhost:3307/shop", "root", "1234" );
    }
    catch(Exception e){
        System.out.println("에러 메세지 :" + e.getMessage());
    }
   
   
   
    try{
       
        sql = "INSERT INTO review_table (userName,userStore,userMeum,userText) VALUES (?,?,?,?)";
        ps = conn.prepareStatement(sql);
        ps.setString(1, reviewDTO.getUserName());
        ps.setString(2, reviewDTO.getUserStore());
        ps.setString(3, reviewDTO.getUserMeum());
        ps.setString(4, reviewDTO.getUserText());
        ps.executeUpdate();
       
        System.out.println("DB에 저장 완료.");
    }
    catch(Exception e){
        System.out.println("DB에 저장 실패.");
        e.getMessage();
        e.printStackTrace(); // 오류 전체
    }
   

%>
```
![Alt text](image-2.png)

![Alt text](image.png)

![Alt text](image-1.png)

 

728x90
반응형

관련글 더보기