DB & TABLE 생성 | JDBC 다운로드 | DTO & DAO 생성 | 데이터베이스 연결
1. MYSQL COMMAND LINE 실행. 2. DB 생성 mysql > CREATE DATABASE DB이름 ; mysql > USE DB이름; 3. TABLE 생성 mysql > CREATE TABLE TABLE이름 { -> userID VARCHAR(ID글자수) -> userPassword VARCHAR(password글자수) -> ); 3. DATA 입력,출력 INSERT INTO USER VALUES ('ID', 'PASSWORD'); SELECT * FROM DM이름; |
DB & TABLE 생성 | JDBC 다운로드 | DTO and DAO 생성 | 데이터베이스 연결
https://dev.mysql.com/downloads/connector/j/
MySQL :: Download Connector/J
MySQL Connector/J 8.0 is highly recommended for use with MySQL Server 8.0, 5.7 and 5.6. Please upgrade to MySQL Connector/J 8.0.
dev.mysql.com
: Connector/J 다운.
: WebContent - lib - mysql-connector-java-8.0.20.jar 파일 추가
DB & TABLE 생성 | JDBC 다운로드 | DTO and DAO 생성 | 데이터베이스 연결
: jsp와 mysql을 연결해주기 위해 필요한 클래스들. 테이블을 user로 만들어 주었기 때문에 package 이름을 user로 함.
UserDTO.java
: DAO(Data Access Object): 데이터베이스에 직접 접근하여 데이터를 처리.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
package user;
import java.sql.Connection;
import java.sql.PreparedStatement;
import util.DatabaseUtil;
public class UserDAO {
Connection conn = DatabaseUtil.getConnection(); //Connection: 자바와 db를 연결하는 class
public int join(String userID, String userPassword) {
String SQL = "INSERT INTO USER VALUES (?,?)";
try {
// 각각의 데이터를 실제로 넣어준다.
PreparedStatement pstmt = conn.prepareStatement(SQL); //PreparedStatement: SQL문을 지정하고 인자값으로 ?안에 데이터를 동적으로 넣어준다.
// 쿼리문의 ?안에 각각의 데이터를 넣어준다.
pstmt.setString(1, userID);
pstmt.setString(2, userPassword);
// 명령어를 수행한 결과 반환, 반환값: insert가 된 데이터의 개수
return pstmt.executeUpdate(); //executeUpdate():명령어를 수행한 결과를 반환, 위 코드에서 결과값은 insert된 데이터의 개수.
}catch (Exception e) {
e.printStackTrace();
}
return -1;
}
|
UserDTO.java
: DTO(Data Transfer Object): JSP와 MYSQL이 서로 데이터를 전달하는 단위.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
package user;
public class UserDTO {
String userID;
String userPassword;
// 멤버변수는 private, getter()와 setter().
// *private을 사용하는 이유는 외부에서 함부로 접근못하도록 정보를 은닉화하기 위함.
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;
}
}
|
DB & TABLE 생성 | JDBC 다운로드 | DTO and DAO 생성 | 데이터베이스 연결
: 데이터베이스를 연결하기 위해 util package 과 DatabaseUtil.java 생성
DatabaseUtil.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
package util;
import java.sql.Connection;
import java.sql.DriverManager;
public class DatabaseUtil {
public static Connection getConnection() { //데이터베이스와 연결상태 관리
try {
String dbURL = "jdbc:mysql://localhost:3306/TUTORIAL?useSSL=false&serverTimezone=UTC";
String dbID ="root";
String dbPassword="root";
Class.forName("com.mysql.cj.jdbc.Driver"); //jdbc드라이버를 불러온다.
return DriverManager.getConnection(dbURL, dbID, dbPassword); //mysql에 연결하기 위한 커넥션 정보
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter
|
http://colorscripter.com/info#e" target="_blank" style="text-decoration:none;color:white">cs |
-------------------DB연결 준비 끝------------------
index.jsp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
<input type="text" name= "userID">
<input type="password" name="userPassword">
<input type="submit" value="전송">
</form>
</body>
</html>
|
cs |
userJoinAction.jsp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="user.UserDTO"%>
<%@ page import="user.UserDAO"%>
<%
request.setCharacterEncoding("UTF-8"); //한글사용방식
String userID = null; // 사용자한테 받아야하는 아이디를 정의.
String userPassword = null;
if (request.getParameter("userID") != null) { // 사용자로부터 받아온 userID가 존재하는지 확인
userID = (String) request.getParameter("userID"); //사용자 userID 값을 입력
}
if (request.getParameter("userPassword") != null) {
userPassword = (String) request.getParameter("userPassword");
}
if (userID == null || userPassword == null) { //userID나password가 값이 없는 경우엔
PrintWriter script = response.getWriter();
script.println("<script>"); //자바스크립트 출력
script.println("alert('입력이 안 된 사항이 있습니다.')"); //사용자에게 보내는 메세지
script.println("</script>");
script.close(); //사용이후엔 반드시 닫아주기
return;
}
UserDAO userDAO = new UserDAO(); //UserDAO를 데이터 베이스에 연결
if (result == 1) {
PrintWriter script = response.getWriter();
script.println("<script>");
script.println("alert('회원가입에 성공했습니다.')");
script.println("location.href='index.jsp';");
script.println("</script>");
return;
}
%>
|
primary key -> 회원중복(데이터중복) 막는 것.
참조값-> 객체의 메모리를 생성했을 때 메모리와 연결된 유일한 숫자값을 말한다.
new 연산자 -> 클래스 타입의 인스턴스(객체)를 생성해주는 역할.
클래스내에서 생성자와 메소드의 차이는 리턴의 유무.
인스턴스 생성이유?
초기화 이유? 미리 값을 설정하면 오류 방지 가능.
생성자 만드는 이유 - 인스턴스 생성시 필드에 초기값으로 부여하기 위해
- 인스턴스 생성에 필요한 초기화 명령을 실행하기 위해.
생성자 작성 방법
1) 반환형 사용 안함 - > 값을 return 할 수 없다.
2) 생성자의 이름은 클래스명과 동일하게 작성
3) 생성자는 오버로딩이 가능 -> 생성자 여러 개 선언 가능
*참고
https://www.youtube.com/playlist?list=PLRx0vPvlEmdAdWCQeUPnyMZ4PsW3dGuFB
'JAVA > JSP' 카테고리의 다른 글
JSP 강의평가 웹사이트 - 메인화면 웹디자인 (0) | 2020.05.03 |
---|---|
JSP 강의평가 웹사이트 - 웹디자인 틀 잡기 (프레임워크) (0) | 2020.05.02 |
JSP 강의평가 웹사이트 - 개발 환경 구축 (0) | 2020.04.29 |
JAVA 리듬게임 - 게임 시작 화면 (0) | 2020.04.29 |
JAVA 리듬게임 만들기 - 환경세팅 (0) | 2020.04.28 |