# 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)