https://zereight.tistory.com/191
이전 포스트에서 Mac 에 이클립스 및 mysql을 설치하는 법을 배웠고,
이번에는 실제로 eclipse와 mysql을 연동해보겠습니다.
간단한 회원가입 페이지를 만들고,
DB에 그 회원정보를 저장하는 프로그램을 작성해보도록 하겠습니다.
먼저, jdbc를 설치해야합니다.
https://dev.mysql.com/downloads/connector/j/
위 mysql 사이트에서 connector j를 다운받아주세요. (mac은 independent platform 으로 해서 다운받으면 됩니다.)
아래 동영상 처럼 진행하면 되겠습니다. (이클립스랑 mysql이 설치되어 있어야합니다.)
1. JSP 셋팅
2. mysql 셋팅 및 연동
사용되는 코드들
/*index.jsp*/
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
<title>JSP Web page</title>
</head>
<body>
<form action="./userJoinAction.jsp" method="post">
<input type="text" name="userID" placeholder="id" >
<input type="text" name="userPassword" placeholder="pw" >
<input type="submit" value="회원가입" >
</form>
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>
</body>
</html>
/*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" %> <!-- js 입출력시 사용 -->
<%
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('회원가입에 성공했습니다.');");
System.out.println(userID);
System.out.println(userPassword);
script.println("location.href = 'index.jsp';");
script.println("</script>");
script.close();
}else{
PrintWriter script = response.getWriter();
script.println("<script>");
script.println("alert('DB에 연결되지 않았습니다.');");
System.out.println(userID);
System.out.println(userPassword);
script.println("location.href = 'index.jsp';");
script.println("</script>");
script.close();
}
return;
%>
/*UserDAO*/
package user;
import java.sql.Connection;
import java.sql.PreparedStatement;
import util.DatabaseUtil;
public class UserDAO {
//DAO 는 database access object로서 실제로 DB에 접근할때 사용되는 객체이다.
public int join(String userID, String userPassword) {
String SQL = "INSERT INTO USER VALUES (?,?)";
try {
System.out.println("getConnection호출.");
Connection conn = DatabaseUtil.getConnection();
System.out.println("getConnection끝.");
PreparedStatement pstmt = conn.prepareStatement(SQL);
pstmt.setString(1, userID);
pstmt.setString(2, userPassword);
return pstmt.executeUpdate();
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
return -1;
}
}
/*UserDTO*/
package user; //user는 tutorial이라는 db에 user라는 table을 만들어주었기 때문이다.
public class UserDTO {
//DTO 는 database transfer object의 약자로 db와 정보를 교환하기 위한 객체형식이다.
String userID;
String userPassword;
//우클릭 > Source > generate getter & setter
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;
}
}
/*DatabaseUtil*/
package util;
import java.sql.Connection;
import java.sql.DriverManager;
public class DatabaseUtil {
//db와의 연결에 사용할 함수들 정의
public static Connection getConnection() {
try {
String dbURL = "jdbc:mysql://localhost:3306/mysql_tutorial?characterEncoding=UTF-8&serverTimezone=UTC";
String dbID = "root";
String dbPassword ="asd123!@#";
Class.forName( "com.mysql.cj.jdbc.Driver" );
return DriverManager.getConnection(dbURL, dbID, dbPassword);
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
return null;
}
}
SET GLOBAL validate_password_policy=LOW;
으로 설정초기화 후 root 비밀번호 바꾸면됨.
'개발 > Web Programming' 카테고리의 다른 글
package.json의 dependencies, devDependencies 차이 (2) | 2019.09.11 |
---|---|
MVC 란? (0) | 2019.09.03 |
Linux, yarn, ERROR: There are no scenarios; must have at least one. (3) | 2019.04.10 |
'const' can only be used in a .ts file. 문제 (0) | 2019.04.03 |
yarn add 시 Unexpected end of JSON input 문제 해결법 (0) | 2019.04.03 |