반응형
JSP에서 회원 데이터베이스의 테이블에 접근할 수 있도록 하고 로그인 기능을 구현하기 위한 UserDAO.java라는 클래스를 생성했습니다.
만약 비밀번호가 다르면 0을 반환하여 loginAcition.jsp에서 그 값을 받아 '비밀번호가 틀렸습니다.' 라는 문구가 나오게 됩니다.
2020.08.27 완성
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
|
package board;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
public class UserDAO {
private Connection conn;
private PreparedStatement pstmt;
private ResultSet rs;
public UserDAO() {
try {
String dbURL = "jdbc:mysql://localhost:3557/kobalja?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC";
String dbID = "root";
String dbPassword = "3557";
Class.forName("com.mysql.cj.jdbc.Driver"); // lib에 추가해야함
conn = DriverManager.getConnection(dbURL, dbID, dbPassword);
} catch (Exception e) {
e.printStackTrace();
}
}
// 로그인 과정
public int login(String userID, String userPassword) {
String SQL = "select userPassword from board where userID= ?";
try {
pstmt = conn.prepareStatement(SQL);
pstmt.setString(1, userID);
rs = pstmt.executeQuery();
if (rs.next()) {
if (rs.getString(1).equals(userPassword))
return 1; // 로그인 성공
else
return 0; // 비밀번호 불일치
}
return -1; // 아이디가 없음
} catch (Exception e) {
e.printStackTrace();
}
return -2; // 데이터베이스 오류
}
// 한명의 사용자를 입력받고 유저클래스를 이용해서 하나의 인스턴스 만들기, 회원가입하기
public int join(Board user) {
String SQL = "insert into board values(?,?,?,?,?)";
try {
pstmt = conn.prepareStatement(SQL);
pstmt.setString(1, user.getUserID());
pstmt.setString(2, user.getUserPassword());
pstmt.setString(3, user.getUserName());
pstmt.setString(4, user.getUserGender());
pstmt.setString(5, user.getUserEmail());
return pstmt.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
}
return -1; // 데이터베이스 목록
}
}
|
cs |
반응형
최근댓글