JDBC란?
– JDBC (Java Database Connectivity)의 정의
- 자바를 이용한 데이터베이스 접속과 SQL 문장의 실행, 그리고 실행 결과로 얻어진 데이터의 핸들링을 제공하는 방법과 절차에 관한 규약
- 자바 프로그램 내에서 SQL문을 실행하기 위한 자바 API
- SQL과 프로그램이 언어의 통합 접근 중 한 형태
JAVA는 표준 인터페이스인 JDBC API를 제공하며, 데이터베이스 벤더 또는 기타 써드파티에서는 JDBC 인터페이스를 구현한 드라이버를 제공한다.
– JDBC를 사용한 프로그래밍 방법
- Connection 객체 생성 – 연결(MySQL – DB)
- Statment 객체 생성 및 질의 작성 – Query 문 작성
- 질의 수행 – 실행
- 연결 종료
JDBC 클래스의 생성 관계: Driver Manager – Connection – Statement – ResultSet
클로즈 할 때는 반대로 클로즈해주어야 한다.(ResultSet 부터)
1. import
import java.sql.*;
2. 드라이버 로드
Class.forName ("com.mysql.jdbc.Driver"); // Class 객체의 forName 메소드를 이용하여 드라이버 로드 // 드라이버 네임은 DBMS의 종류에 따라 다름(Oracle, MySQL 등 서로 다른 이름을 사용)
3. connection 얻기
String dburl = "jdbc:mysql://localhost/dbName"; Connection con = DriverManager.getConnection(URL,ID,PWD);
4. statemen 생성
Statement stmt = con.CreateSatement();
5. 질의 수행
ResultSet rs = stmt.executeQuery("select no from user"); // 어떤 쿼리를 사용할거냐에 따라서 사용하는 execute 함수가 다름 // execute - anySQL // executeQuery - SELECT // executeUpdate - INSERT, UPDATE, DELETE
6. ResultSet으로 결과 받기
while(rs.next()) System.out.println(rs.getInt("no"));
7. Close
rs.close(); stmt.close(); con.close(); // close 할 때는 생성과 반대 순서대로
– JDBC 실습하기
에러 기록(mysql non transient connection exception)
DB와 connection할 떄 아래와 같은 에러가 나서 보니 pom.xml에 명시한 mysql 버전과 실제 내 PC에 설치된 mysql 버전이 달라서 나는거였다. 내 버전에 맞게 pom.xml 수정해 주니 정상적으로 연결되었다(참고 링크)
에러:
com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up.
pom.xml
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.25</version> <!-- <version>5.1.45</version> 5.1.45로 되어있었는데 8.0.25로 변경 --> </dependency>
jdbc를 이용하여 데이터베이스에서 입력/수정/조회/삭제 하는 프로그램 만들기
conenctedb의 role 테이블에 접근하여 입력/수정/조회/삭제하는 코드를 작성해본다.
// 코드 링크 올리기