윤석진 jco jdbc

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

Upload: sukjin-yun

Post on 04-Jul-2015

379 views

Category:

Documents


2 download

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