JSP 강의평가 웹 사이트 개발하기 강의노트 - 3강
3강 - MySQL과 JSP 연동 및 실습
Mysql(MariaDB) 테이블 생성
C:\Users\spec0>mysql -u root -p
MariaDB [(none)]> CREATE DATABASE TUTORIAL;
MariaDB [(none)]> USE TUTORIAL;
MariaDB [TUTORIAL]> SHOW TABLES;
Empty set (0.001 sec)
MariaDB [TUTORIAL]> CREATE TABLE USER (
-> userID VARCHAR(20),
-> userPassword VARCHAR(64)
-> );
Query OK, 0 rows affected (0.039 sec)
MariaDB [TUTORIAL]> SHOW TABLES;
+--------------------+
| Tables_in_tutorial |
+--------------------+
| user |
+--------------------+
1 row in set (0.000 sec)
MariaDB [TUTORIAL]> INSERT INTO USER VALUES ('1', '123');
Query OK, 1 row affected (0.048 sec)
MariaDB [TUTORIAL]> SELECT * FROM USER;
+--------+--------------+
| userID | userPassword |
+--------+--------------+
| 1 | 123 |
+--------+--------------+
1 row in set (0.003 sec)
이클립스에서 패키지 만들기

UserDTO 생성
- DTO: JSP 프로그램 안에서 임시적으로 하나의 데이터 단위를 담기 위한 용도로 정의되는 객체

UserDTO 소스

// userDTO.java
package user;
public class UserDTO {
String userID;
String userPassword;
public String getUserID() {
return userID;
}
public void setUserID(String userID) {
this.userID = userID;
}
public String getUserPassword() {
return userPassword;
}
public void setUserPassword(String userPassword) {
this.userPassword = userPassword;
}
}
UserDAO 생성
- DAO: 데이터베이스 연동

Util 생성

DatabaseUtil.java 소스
// DatabaseUtil.java
package util;
import java.sql.Connection;
import java.sql.DriverManager;
public class DatabaseUtil {
public static Connection getConnection() {
try {
String dbURL = "jdbc:mariadb://localhost:3306/TUTORIAL";
String dbID = "root";
String dbPassword = "1234";
Class.forName("org.mariadb.jdbc.Driver");
return DriverManager.getConnection(dbURL, dbID, dbPassword);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}
UserDAO.java 소스
// UserDAO.java
package user;
import java.sql.Connection;
import java.sql.PreparedStatement;
import util.DatabaseUtil;
public class UserDAO {
public int join(String userID, String userPassword) {
String SQL = "INSERT INTO USER VALUES (?, ?)";
try {
Connection conn = DatabaseUtil.getConnection();
PreparedStatement pstmt = conn.prepareStatement(SQL);
pstmt.setString(1, userID);
pstmt.setString(2, userPassword);
return pstmt.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
}
return -1;
}
}
index.jsp 소스
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>우리의 첫 번째 페이지</title>
</head>
<body>
Hello World!
<form action="./userJoinAction.jsp" method="post">
<input type="text" name="userID">
<input type="password" name="userPassword">
<input type="submit" value="회원가입">
</form>
</body>
</html>
userJoinAction.jsp 생성

userJoinAction.jsp 소스
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="user.UserDTO"%>
<%@ page import="user.UserDAO"%>
<%@ page import="java.io.PrintWriter"%>
<%
request.setCharacterEncoding("UTF-8");
String userID = null;
String userPassword = null;
if(request.getParameter("userID") != null) {
userID = (String)request.getParameter("userID");
}
if(request.getParameter("userPassword") != null) {
userPassword = (String)request.getParameter("userPassword");
}
if(userID == null || userPassword == null) {
PrintWriter script = response.getWriter();
script.println("<script>");
script.println("alert('입력이 안 된 사항이 있습니다.');");
script.println("history.back();");
script.println("</script>");
script.close();
return;
}
UserDAO userDAO = new UserDAO();
int result = userDAO.join(userID, userPassword);
if (result == 1) {
PrintWriter script = response.getWriter();
script.println("<script>");
script.println("alert('회원가입에 성공했습니다.');");
script.println("location.href = 'index.jsp';");
script.println("</script>");
script.close();
return;
}
%>
MariaDB 드라이버 프로젝트 포함

최종 결과
