jsp db연결문 DAO

김재원·2022년 4월 1일
0

자바

목록 보기
41/41

package user;

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; //어떠한 정보를 담을 수 있는 하나 객체

//이 부분이 실제로 sql에 접속하게 해주는 부분
public UserDAO(){
	try {
		//~/database",~ 를 ~/database?useSSL=false",~ 
		String dbURL = "jdbc:mysql://localhost:3306/BBS? &serverTimezone=UTC"; //신 버전 이라서 serTimezone=UTC 붙혀줘야댐
		//&serverTimezone=UTC 이걸로 해결함
		String dbID = "root";
		String dbPassword ="49265771";
		Class.forName("com.mysql.cj.jdbc.Driver");
		//com.mysql.cj.jdbc.Driver mysql8버전 부터는 이거 사용해야됨
		//com.mysql.jdbc.Driver
		conn = DriverManager.getConnection(dbURL, dbID, dbPassword); //주소 아이디 비번을 통해서 접속한다
	}catch(Exception e) {
		e.printStackTrace();
	}
}

//로그인기능
public int login(String userID,String userPassword) {
	String SQL = "SELECT userPassword FROM USER WHERE userID =?";
	try {
		pstmt = conn.prepareStatement(SQL); 
		pstmt.setString(1, userID);
		rs = pstmt.executeQuery(); 
		
		//결과가 존재한다면 밑에 if부분 실행
		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(User user) {
	String SQL = "INSERT INTO USER 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();
	}
	finally {
		try {if(conn != null) {conn.close();}} catch (Exception ex) {ex.printStackTrace();}
		try {if(rs != null)   {rs.close();}}   catch (Exception ex) {ex.printStackTrace();}
		try {if(pstmt != null){pstmt.close();}}catch (Exception ex) {ex.printStackTrace();}
	}
	return -1; // 데이터베이스오류
}

}

profile
우당탕탕 주니어 디벨로퍼

0개의 댓글