JDBC(Java Database Connectivity)

JDBC(Java Database Connectivity)는 자바에서 데이터베이스에 접속할 수 있도록 하는 자바 API이다.
JDBC 클래스는 자바 패키지 java.sql과 javax.sql에 포함되어 있다
JDBC 드라이버들은 자바 프로그램의 요청을 DBMS가 이해할 수 있는 프로토콜로 변환해주는 클라이언트 사이드 어댑터이다. (서버가 아닌 클라이언트 머신에 설치)
https://github.com/doriver/javaProject_mysql_connection
GitHub - doriver/javaProject_mysql_connection
Contribute to doriver/javaProject_mysql_connection development by creating an account on GitHub.
github.com
1. 단순 Java프로젝트 + mysql-connector-java-8.0.25.jar
단순 Java프로젝트의 buid path( module path )에 mysql-connector-java-8.0.25를 Add External JARs 한경우
( mysql-connector-java-8.0.25.jar에 com.mysql.cj.jdbc.Driver가 들어있다 )

대략적인 과정은 위와 같다
DriverManager.registerDriver(new com.mysql.cj.jdbc.Driver());
this.conn = DriverManager.getConnection(
this.url, this.id, this.password );
this.statement = conn.createStatement();
( java.sql 는 기본 JRE System Library에 들어있다 )
java.sql.DriverManager에 mysql jdbc driver를 등록하고
java.sql.Connection 과 java.sql.Statement를 이용해서 DB에 접속하고, 쿼리를 수행할 준비를 한다
( DriverManager -> Connection -> Statement )
Statement -> 쿼리 수행 메소드
java.sql.ResultSet 로 select한 결과를 담는다
public ResultSet select(String query) throws SQLException {
return this.statement.executeQuery(query);
}
쿼리 수행 메소드(executeUpdate , executeQuery)의 위치
: 추가한 mysql-connector-java-8.0.25 속 com.mysql.cj.jdbc.StatementImpl에 있음
package com.mysql.cj.jdbc;
public class StatementImpl implements JdbcStatement {
// 메소드 executeUpdate , executeQuery 여기 있음
}
java.sql.Statement와 com.mysql.cj.jdbc.StatementImpl의 연결관계
public abstract interface com.mysql.cj.jdbc.JdbcStatement
extends java.sql.Statement, com.mysql.cj.Query { ~ ~ }
그래서 java.sql.Statement로 변수 잡아놓고, 함수 사용해도 이상 없었음
java.sql.SQLException로 예외처리를 해줌
( 자주 등장하는 패키지 : java.sql , com.mysql.cj.jdbc )
2. 단순 Java프로젝트 + mysql-connector-java-8.0.25.jar + mybatis-3.5.0.jar

대략적인 과정은 위와 같다
config.xml에는
dataSource property로 driver, url, username, password가 담김
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
mapper resource에 sql이 담긴 xml파일 경로가 담김
org.apache.ibatis.io.Resources로 config.xml를 java.io.Reader에 담는다
Reader reader = Resources.getResourceAsReader("config/config.xml");
위에서 만든거를 org.apache.ibatis.session.SqlSessionFactoryBuilder로 build해서 org.apache.ibatis.session.SqlSessionFactory로 만든다
sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
만든SqlSessionFactory로 org.apache.ibatis.session.SqlSession을 만듦
SqlSession session = sqlSessionFactory.openSession();
SqlSession이걸로 insert, delete, selectList, update, selectOne 등 메소드들 사용
id = session.insert("BB.insert", book);
---------
namespace.id
sql담긴 xml파일은 아래와 같은 코드를 가지고 있다
<mapper namespace="BB">
<insert id="insert" parameterType="Book">
~~
</insert>
</mapper>
SqlSession을 상속받은 클래스DefaultSqlSession에 해당 메소드들이 있는듯
package org.apache.ibatis.session.defaults;
public class DefaultSqlSession implements SqlSession {
// 여기에 insert, delete, selectList, update, selectOne 등 메소드 있는듯
}
'Programing Language > JAVA' 카테고리의 다른 글
| java - mybatis 에서의 삽질 (0) | 2023.05.11 |
|---|---|
| OpenJDK Platform binary (1) | 2023.03.30 |
| 스크립트 언어와 컴파일 언어 (0) | 2022.11.24 |
| 내가 정리하는 Java , 첫번째 (0) | 2022.11.13 |
| 서블릿(Servlet) (0) | 2022.10.24 |