Top Banner
제13회 한국자바개발자 컨퍼런스
47

윤석진 Jco jdbc

Jul 04, 2015

Download

Documents

Sukjin Yun
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 윤석진 Jco jdbc

제13회 한국자바개발자 컨퍼런스

Page 2: 윤석진 Jco jdbc

제13회 한국자바개발자 컨퍼런스

Page 3: 윤석진 Jco jdbc

제13회 한국자바개발자 컨퍼런스

JDBC Overview

Page 4: 윤석진 Jco jdbc

제13회 한국자바개발자 컨퍼런스

데이터베이스 API 표준 관계도

ODBC

X/OPEN

JDBC

Page 5: 윤석진 Jco jdbc

제13회 한국자바개발자 컨퍼런스

http://docs.oracle.com/javase/7/docs/

JDBC

Page 6: 윤석진 Jco jdbc

제13회 한국자바개발자 컨퍼런스

JDBC

Type1 Bridge

Type2 Native

Type3 MiddleWare

Type4 Pure Java

ODBC ODBC Driver

CLI(.lib)

MiddleWare Server

Page 7: 윤석진 Jco jdbc

제13회 한국자바개발자 컨퍼런스

Database Name JDBC 4.1

Oracle 11g

SQL 2008 sqljdbc4

MySQL mysql-connector-java-com-5.x.x.jar

데이터베이스별 JDBC 드라이버 버전

ojdbc6

Page 8: 윤석진 Jco jdbc

제13회 한국자바개발자 컨퍼런스

register

Provide

create

1 * retrive

extends

extends

1 *

1

1

1

1

JDBC API 관계도

DriverManager Driver

Connection

DatabaseMetaData

ResultSet Statement

ResultSetMetaData CallableStatement

PreparedStatement

Page 9: 윤석진 Jco jdbc

제13회 한국자바개발자 컨퍼런스

JDBC 4.1 Goals & New Features

Page 10: 윤석진 Jco jdbc

제13회 한국자바개발자 컨퍼런스

JDBC 4.1 Goals

1. Be consistent with SQL:2003

2. Offer vender-neutral access to common

features

3. Maintain the focus on SQL

4. Close Association with JDBC Rowset

implementations

Page 11: 윤석진 Jco jdbc

제13회 한국자바개발자 컨퍼런스

SQL2003

1. xml-related features(SQL/XML)

2. Window functions

3. The sequence generator, which standardized

sequences

4. The new merge statement

5. Extensions to the Create table

Page 12: 윤석진 Jco jdbc

제13회 한국자바개발자 컨퍼런스

Driver Auto-Loading

Page 13: 윤석진 Jco jdbc

제13회 한국자바개발자 컨퍼런스

Auto-Closing

Statement

PreparedStatement ResultSet

Connection

AutoCloseable

Page 14: 윤석진 Jco jdbc

제13회 한국자바개발자 컨퍼런스

JDBC API Tip

Page 15: 윤석진 Jco jdbc

제13회 한국자바개발자 컨퍼런스

ConnectionPoolDataSource

DBVendorDataSource

PooledConnection ConnectionPoolDataSource

getConnection

ConnectionEvent

Close or Error

Page 16: 윤석진 Jco jdbc

제13회 한국자바개발자 컨퍼런스

ConnectionPoolDataSource

Page 17: 윤석진 Jco jdbc

제13회 한국자바개발자 컨퍼런스

ConnectionEvent

Page 18: 윤석진 Jco jdbc

제13회 한국자바개발자 컨퍼런스

DatabaseMetaData

Connection DatabaseMetaData

Page 19: 윤석진 Jco jdbc

제13회 한국자바개발자 컨퍼런스

static boolean isExist(Connection conn, String tableName)

SQLException {

DatabaseMetaData dbmd = conn.getMetaData();

ResultSet rs = dbmd.getTables(catalog,

schemaPattern,

tableName,

types);

return rs.next();

}

DatabaseMetadata table 존재유무

Page 20: 윤석진 Jco jdbc

제13회 한국자바개발자 컨퍼런스

ResultSetMetaData

Page 21: 윤석진 Jco jdbc

제13회 한국자바개발자 컨퍼런스

Data Manipulation

Page 22: 윤석진 Jco jdbc

제13회 한국자바개발자 컨퍼런스

RowSet RowSet

CachedRowSet

WebRowSet

JoinRowSet FilteredRows

Connected Disconnected

ResultSet

JDBCRowSet

Page 23: 윤석진 Jco jdbc

제13회 한국자바개발자 컨퍼런스

ResultSet Type

update

Scroller

Page 24: 윤석진 Jco jdbc

제13회 한국자바개발자 컨퍼런스

JDBCRowSet ResultSet을 래핑하여 Scroll과 update를 가능하도록 만든 인터페이스

Page 25: 윤석진 Jco jdbc

제13회 한국자바개발자 컨퍼런스

RowSet Joinable

CachedRowSet

CachedRowSet

Page 26: 윤석진 Jco jdbc

제13회 한국자바개발자 컨퍼런스

CachedRowSet

Page 27: 윤석진 Jco jdbc

제13회 한국자바개발자 컨퍼런스

CachedRowSet Insert

Page 28: 윤석진 Jco jdbc

제13회 한국자바개발자 컨퍼런스

Data Filter

Page 29: 윤석진 Jco jdbc

제13회 한국자바개발자 컨퍼런스

필터를 위한 인터페이스

Predicate

Evaluate(Rowset)

Evaluate(Object , int)

Evaluate(Object , String)

Filtered RowSet

setFilter( Predicate p)

getFilter

Page 30: 윤석진 Jco jdbc

제13회 한국자바개발자 컨퍼런스

필터

Page 31: 윤석진 Jco jdbc

제13회 한국자바개발자 컨퍼런스

Page 32: 윤석진 Jco jdbc

제13회 한국자바개발자 컨퍼런스

WebRowSet

Page 33: 윤석진 Jco jdbc

제13회 한국자바개발자 컨퍼런스

WebRowSet CRUD

Page 34: 윤석진 Jco jdbc

제13회 한국자바개발자 컨퍼런스

JoinRowSet

WebRowSet

JoinRowSet

Page 35: 윤석진 Jco jdbc

제13회 한국자바개발자 컨퍼런스

Table Join

Page 36: 윤석진 Jco jdbc

제13회 한국자바개발자 컨퍼런스

JoinRowSet

Join

Page 37: 윤석진 Jco jdbc

제13회 한국자바개발자 컨퍼런스

Bulk Insert

Page 38: 윤석진 Jco jdbc

제13회 한국자바개발자 컨퍼런스

Insert Batch

dbConnection.setAutoCommit(false); preparedStatement.setXX();…..n preparedStatement.addBatch();

preparedStatement.executeBatch() dbConnection.commit();

Page 39: 윤석진 Jco jdbc

제13회 한국자바개발자 컨퍼런스

Management Transaction

Page 40: 윤석진 Jco jdbc

제13회 한국자바개발자 컨퍼런스

SavePoint

Page 41: 윤석진 Jco jdbc

제13회 한국자바개발자 컨퍼런스

Logging

Page 42: 윤석진 Jco jdbc

제13회 한국자바개발자 컨퍼런스

DriverManager logging

Page 43: 윤석진 Jco jdbc

제13회 한국자바개발자 컨퍼런스

PreparedStatement Logging#1

Page 44: 윤석진 Jco jdbc

제13회 한국자바개발자 컨퍼런스

PreparedStatement Logging#2

Page 45: 윤석진 Jco jdbc

제13회 한국자바개발자 컨퍼런스

PreparedStatement Logging#3

Page 46: 윤석진 Jco jdbc

제13회 한국자바개발자 컨퍼런스

예외처리

getErrorCode – db벤더가 제공하는 정수형 getSQLState – SQL2003 에러코드/문자열

http://publib.boulder.ibm.com/infocenter/idshelp/v115/index.jsp?topic=%2Fcom.ibm.sqls.doc%2Fids_sqs_0808.htm

Page 47: 윤석진 Jco jdbc

제13회 한국자바개발자 컨퍼런스

All for One

One for All