Computer Science/Database

[Database] Java Project와 MySQL DB 연결 (JDBC)

Bay Im 2024. 3. 18. 13:01
  • 자바 프로젝트와 MySQL DB 연결
    • MySQL Community Downloads
      • Select Operating System: Platfrom Independent 선택
      • ZIP Archive로 다운로드
      • 압축 풀기
      • 폴더 안의 mysql-connector-j-8.3.0.jar 파일 복사
    • 프로젝트 폴더에 lib 폴더 생성 후 붙여넣기
    • 인텔리제이
      • Project Structure- Modules- Dependencies 이동
      • 왼쪽에 + 버튼 누른 후 Jars or Directories 이동 후 위의 jar 파일 선택
  • 데이터베이스 접속 및 쿼리문 실행하는 DAO 클래스 작성
    • 테이블명DAO.java
      • import java.sql.*;
        
        public class MemberDAO {
            //데이터베이스 접속 객체
            Connection conn = null;
            //SQL 쿼리를 구현하는 객체
            Statement stmt = null;
            //쿼리에 대한 응답인 ResultSet을 가져오는 객체
            ResultSet rs = null;
        
            public MemberDAO() {
                try {
                    //MySQL DB 드라이버 로드
                    Class.forName("com.mysql.cj.jdbc.Driver");
                    //데이터베이스 접속
                    conn = DriverManager.getConnection(
                            "jdbc:mysql://localhost:3306/mydb", //Host
                            "root", //사용자
                            "root" //암호
                    );
                } catch (Exception e) {
                    e.printStackTrace();
                    try {
                        conn.close();
                    } catch (Exception ex) {
                        e.printStackTrace();
                    }
                }
                if (conn != null) {
                    System.out.println("데이터베이스 접속 성공!!");
                }
            }
            
            // 그외 insert, update, select 등 함수 작성 
            
            public void close() {
                if (conn != null) {
                    try {
                        conn.close();
                    } catch (SQLException e) {
                        throw new RuntimeException(e);
                    }
                }
                if (stmt != null) {
                    try {
                        stmt.close();
                    } catch (SQLException e) {
                        throw new RuntimeException(e);
                    }
                }
                if (rs != null) {
                    try {
                        rs.close();
                    } catch (SQLException e) {
                        throw new RuntimeException(e);
                    }
                }
            }
        }
  • DTO 클래스 작성
    • 테이블명DTO.java
    • 각 열을 멤버 변수로 선언
    • 해당 열들의 getter, setter 함수 작성
  • Main 클래스 작성
    • 테이블명Main.java
      • public class MemberMain {
            public static void main(String[] args) {
                // DAO 객체 생성
                MemberDAO dao = new MemberDAO();
        	        
                // 레코드 추가 예시
                MemberDTO dto = new MemberDTO ();
                dto.setMemberno(5);
                dto.setId("hong");
                dto.setName("홍길동");
                int result = dao.insert(vo);
                
                dao.close();
            }
        }