프로그램 공부 로그/DB

Dao에서 JDBC를 통한 DB연결

HyoungJunYoon 2020. 11. 14. 13:32

* Class.forName(com.mysql.cj.jdbc.Driver) : 드라이브를 로드

* DriverManager.getConnection(jdbc:mysql://localhost:'port'/'DBname') : 연결할 IP와 DB정보를 받는다.

* Connection.prepareStatement("Query") : 커넥션을 통해 인스턴스 생성

* PreparedStatement : 생성된 인스턴스를 받아서

* pstmt.setObject(1, id) : 쿼리문에 필요한 값을 넣어줌

* PreparedStatement.executeQuery() : 쿼리 실행

* ResultSet.next() : 리턴값이 있으면 페이지를 넘겨주고, true/false를 반환.

 

 

 

  • 필요한 지식
    • JDBC 이해
    • MySQL 드라이버 이해
    • MySQL 드라이버 클래스 로딩 이해
    • 왜 JDBC 만으로는 안되고 MySQL 드라이버가 필요한지 이해
    • 라이브러리가 무엇인지 이해
    • 이클립스 프로젝트에 외부 라이브러리 추가하는 방법 학습
    • JDBC의 대표적인 클래스 Connection, PreparedStatement, ResultSet 역할 이해
    • 자원해제와 try catch
    • DB에서 받은 데이터를 List<Article>객체 혹은 Article객체 형식으로 바꾸는 방법
  • 단계적 접근법
    • 프로젝트 생성
    • MySQL 드라이버 라이브러리(jar)를 프로젝트에 추가
    • MySQL 드라이버 로딩
    • DriverManager로 Connection 객체 생성
    • Statement로 DELETE FROM article WHERE id = 1; 쿼리 실행
    • Statement로 SELECT * FROM article limit 1; 쿼리 실행
    • ResultSet 객체로 DB에서 보내준 데이터를 받기
    • ResultSet 객체에서 데이터 꺼내서 Article 객체에 넣기
    • Statement로 SELECT * FROM article ORDER BY id DESC; 쿼리 실행
    • ResultSet 객체로 DB에서 보내준 데이터를 받기
    • 반복문을 사용하여, ResultSet 객체에서 데이터 꺼내서 Article 객체에 넣기
  • 힌트
    • JDBC : 카카오 택시 서비스(고객에게 기사님과 직접 이야기할 필요를 없앤다.)
    • MySQL 드라이버 : 카카오 택시에 소속된 기사(오직 MySQL 서버에만 갈 수 있고, Oracle 서버에는 못간다.)
    • MySQL 드라이버 클래스 로딩 : 카카오 택시 서비스에 기사을 등록하는 행위
    • 왜 JDBC 만으로는 안되고 MySQL 드라이버가 필요한지 이해 : 등록된 기사가 0명이면 카카오택시가 쓸모없음
    • 라이브러리가 무엇인지 이해 : 남이 만든 유용한 것
    • JDBC Connection : MySQL 서버와의 1:1 카톡채팅방
    • JDBC PreparedStatement : MySQL 서버에게 할말을 적는 카톡 메세지 입력상자
    • JDBC ResultSet : MySQL이 한 응답 메세지
    • 자원해제와 try catch : MySQL이 동시에 유지할 수 있는 카톡채팅방의 개수가 제한되기 때문에, 용건이 끝나면 채팅방을 없애줘야 한다.
    • DB에서 받은 데이터를 List<Article>객체 혹은 Article객체 형식으로 변경 : 발전소에서 온 교류전기를 집에서 왜 직류전기로 바꿔서 쓸까요?(이유는 편하니까)

'프로그램 공부 로그 > DB' 카테고리의 다른 글

sql (sum, max, min, count)  (0) 2020.11.20
INNER JOIN  (0) 2020.11.18
sql  (0) 2020.11.10