* 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 |