개발 일기
JDBC(Java Database Connectivity)를 알아보기! 본문
안녕하세요!
이제껏 JAVA와 SQL에 대해서 공부와 블로그를 작성을 했는데요!
배운 JAVA에 SQL을 연결하여 자바에서 데이터베이스에 접근하여 사용하는 JDBC에 대해 공부해보겠습니다!
JDBC란??
- JDBC(Java Database Connectivity)는 자바에서 데이터베이스에 접속할 수 있도록 하는 자바 API이다.
- JDBC는 데이터베이스에서 자료를 쿼리하거나 업데이트하는 방법을 제공한다.
자바에서 데이터베이스를 사용하려면 JDBC드라이버가 있어야 합니다.
JDBC드라이버는 자바 프로그램과 데이터베이스에 연결하기 위한 라이브러리입니다.
DBMS에 따라 DB를 다루는 방식이 다르면 사용자들이 알아야하는것이 방대해지기 때문에
JDBC가 인터페이스들만 제공하고 나머지는 각 DBMS에 맞게 구현이 되어 있습니다.
그래서 사용자는 각 DBMS에 맞는 드라이버만 설치하면 됩니다.
저는 오라클DB를 사용하여 진행합니다!
JDBC FLOW에 맞춰 코딩 해보기
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class JDBCFlowMain {
public static void main(String[] args) throws Exception{
String driverClass= "oracle.jdbc.OracleDriver";
String url = "jdbc:oracle:thin:@ip주소:xe";
String user = "DB접속정보";
String password = "DB접속정보";
String selectSql = "select * from dept";
Class.forName(driverClass);
System.out.println("1. Driver Class loading");
Connection con = DriverManager.getConnection(url,user,password);
System.out.println("2. Connection 객체 생성(DBServer에 연결) : "+ con);
Statement stmt = con.createStatement();
System.out.println("3. Statement 객체 생성(SQL 전송 객체) : "+stmt);
ResultSet rs = stmt.executeQuery(selectSql);
System.out.println("4. SQL문 전송 : " + selectSql);
System.out.println("5. ResultSet(결과집합) 얻기 : " + rs);
while(rs.next()) {
int deptno=rs.getInt("deptno");
String dname=rs.getString("dname");
String loc=rs.getString("loc");
System.out.println(deptno + "\t" + dname + "\t" + loc);
}
rs.close();
stmt.close();
con.close();
System.out.println("6.resource해지 close()");
}
}
//DB접근 필수 요소
String driverClass= "oracle.jdbc.OracleDriver";
=> 드라이버클래스 객체 생성, OracleDriver 클래스는 기생성 되어 있음
String url = "jdbc:oracle:thin:@ip주소:xe";
=> 오라클 db에 연결할 url 주소 대입
String user = "javadeveloper28";
=> db에 접근가능한 ID 입력
String password = "javadeveloper28";
=> db에 접근가능한 ID 입력
//예시용
String selectSql = "select * from dept";
=> SQL의 select문 예시
JDBC 기본 플로우
1. Driver Class Loding
- Driver 클래스 객체 생성 (OracleDriver 클래스는 생성되어 있는 상태)
=> String driverClass= "oracle.jdbc.OracleDriver";
=> Class.forName(driverClass);
2. Connection 객체 생성(DBServer에 연결)
=> Connection con = DriverManager.getConnection(url,user,password);
3. Statement 객체 생성(SQL 전송 객체)
=> Statement stmt = con.createStatement();
4. SQL문 전송
=> ResultSet rs = stmt.executeQuery(selectSql);
5. ResultSet 얻기(SELECT문 출력)
=> while(rs.next()) {
int deptno=rs.getInt("deptno");
String dname=rs.getString("dname");
String loc=rs.getString("loc");
System.out.println(deptno + dname + loc);
// deptno, dname, loc 는 db의 column 값
변수로 변경하여 출력 시 SQL의 컬럼의 데이터타입과 JAVA의 변수의 데이터타입을 일치시켜야 함
6. resource해지
=> rs.close();
stmt.close();
con.close();
실행 시 콘솔 출력
JDBC의 기본 FLOW에 대해 알아보았습니다.
감사합니다!
'JAVA 공부' 카테고리의 다른 글
Statement 말고 PreparedStatement란??? (feat. 활용해보기) (0) | 2021.07.25 |
---|---|
JAVA 예외 내용 정리 해보기 (0) | 2021.06.29 |
JAVA Collection 클래스 Map 인터페이스 3 (feat. HashMap 활용해보기) (0) | 2021.06.27 |
JAVA Collection 클래스 Set 인터페이스 2 (feat. HashSet 활용해보기) (0) | 2021.06.25 |
JAVA Collection 클래스 List 인터페이스 1 (feat. ArrayList 활용해보기) (0) | 2021.06.24 |