SlideShare une entreprise Scribd logo
1  sur  47
Télécharger pour lire hors ligne
제13회 한국자바개발자 컨퍼런스
제13회 한국자바개발자 컨퍼런스
제13회 한국자바개발자 컨퍼런스




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



데이터베이스 API 표준 관계도
          X/OPEN




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




   JDBC




http://docs.oracle.com/javase/7/docs/
제13회 한국자바개발자 컨퍼런스



       Type1                           ODBC
                    ODBC
       Bridge                          Driver



          Type2
                           CLI(.lib)
          Native

JDBC
         Type3                    MiddleWare
       MiddleWare                   Server



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



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

 Database Name   JDBC 4.1

 Oracle 11g      ojdbc6

 SQL 2008        sqljdbc4


 MySQL           mysql-connector-java-com-5.x.x.jar
제13회 한국자바개발자 컨퍼런스



JDBC API 관계도
                   register
 DriverManager                        Driver


                       Provide
                                                     1     *

   Connection          create       Statement                      ResultSet

        1
                   1       *                         retrive                   1
            1                             extends
DatabaseMetaData                 PreparedStatement



                                           extends                             1

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




JDBC 4.1
Goals & New Features
제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
제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
제13회 한국자바개발자 컨퍼런스



Driver Auto-Loading
제13회 한국자바개발자 컨퍼런스



Auto-Closing
                     AutoCloseable




        Connection                   Statement




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




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



ConnectionPoolDataSource
  DBVendorDataSource




                           getConnection
ConnectionPoolDataSource                   PooledConnection


                                   Close or Error



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



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



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



DatabaseMetaData


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



DatabaseMetadata table 존재유무

static boolean isExist(Connection conn, String tableName)
SQLException {
    DatabaseMetaData dbmd = conn.getMetaData();
    ResultSet rs   = dbmd.getTables(catalog,
                          schemaPattern,
                          tableName,
                          types);
    return rs.next();
}
제13회 한국자바개발자 컨퍼런스



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




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



RowSet                 RowSet              ResultSet




 JDBCRowSet          CachedRowSet

 Connected                          Disconnected

                      WebRowSet




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



ResultSet Type
   Scroller




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



JDBCRowSet
ResultSet을 래핑하여 Scroll과 update를
가능하도록 만든 인터페이스
제13회 한국자바개발자 컨퍼런스



CachedRowSet
    RowSet                   Joinable




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



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



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




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



필터를 위한 인터페이스
 Predicate                      Filtered
                                RowSet

Evaluate(Rowset)            setFilter( Predicate p)
Evaluate(Object , int)
                            getFilter
Evaluate(Object , String)
제13회 한국자바개발자 컨퍼런스



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



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



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



JoinRowSet

        WebRowSet




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



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



JoinRowSet


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




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



Insert Batch
dbConnection.setAutoCommit(false);

preparedStatement.setXX();…..n
preparedStatement.addBatch();

      preparedStatement.executeBatch()
          dbConnection.commit();
제13회 한국자바개발자 컨퍼런스




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



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




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



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



PreparedStatement Logging#1
제13회 한국자바개발자 컨퍼런스



PreparedStatement Logging#2
제13회 한국자바개발자 컨퍼런스



PreparedStatement Logging#3
제13회 한국자바개발자 컨퍼런스



예외처리


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




http://publib.boulder.ibm.com/infocenter/idshelp/v115/index.jsp?topic=%2Fcom.ibm.sqls.doc%2Fids_sqs_0808.htm
제13회 한국자바개발자 컨퍼런스




All for
 One
One for
  All

Contenu connexe

Similaire à 윤석진 Jco jdbc

[JCO 컨퍼런스] 웹사이트 Front-End 성능 최적화
[JCO 컨퍼런스] 웹사이트 Front-End 성능 최적화[JCO 컨퍼런스] 웹사이트 Front-End 성능 최적화
[JCO 컨퍼런스] 웹사이트 Front-End 성능 최적화흥래 김
 
2013 JCO tipJS.com JavaScript MVC framework
2013 JCO tipJS.com JavaScript MVC framework2013 JCO tipJS.com JavaScript MVC framework
2013 JCO tipJS.com JavaScript MVC frameworkSeung-Hyun PAEK
 
[KAU UMC 컨퍼런스] Java 기반 Web의 역사 - 김준기
[KAU UMC 컨퍼런스] Java 기반 Web의 역사 - 김준기[KAU UMC 컨퍼런스] Java 기반 Web의 역사 - 김준기
[KAU UMC 컨퍼런스] Java 기반 Web의 역사 - 김준기JunGi Kim
 
Nginx Testing in NAVER
Nginx Testing in NAVERNginx Testing in NAVER
Nginx Testing in NAVER형근 송
 
All about JDBC Performance Tuning_Wh apm
All about JDBC Performance Tuning_Wh apmAll about JDBC Performance Tuning_Wh apm
All about JDBC Performance Tuning_Wh apm엑셈
 
02.실행환경 실습교재(데이터처리)
02.실행환경 실습교재(데이터처리)02.실행환경 실습교재(데이터처리)
02.실행환경 실습교재(데이터처리)Hankyo
 
Percona server for MySQL 제품 소개
Percona server for MySQL 제품 소개Percona server for MySQL 제품 소개
Percona server for MySQL 제품 소개NeoClova
 
올챙이(Tadpole for DB Tools)로 살펴보는 Eclipse RAP
올챙이(Tadpole for DB Tools)로 살펴보는 Eclipse RAP올챙이(Tadpole for DB Tools)로 살펴보는 Eclipse RAP
올챙이(Tadpole for DB Tools)로 살펴보는 Eclipse RAPcho hyun jong
 
03.[참고]표준프레임워크기반 개발방법
03.[참고]표준프레임워크기반 개발방법03.[참고]표준프레임워크기반 개발방법
03.[참고]표준프레임워크기반 개발방법Hankyo
 
Cloud-Barista 제3차 오픈 컨퍼런스 : CB-Spider - 멀티 클라우드 인프라 연동(Multi-Cloud Infrastruc...
Cloud-Barista 제3차 오픈 컨퍼런스 : CB-Spider - 멀티 클라우드 인프라 연동(Multi-Cloud Infrastruc...Cloud-Barista 제3차 오픈 컨퍼런스 : CB-Spider - 멀티 클라우드 인프라 연동(Multi-Cloud Infrastruc...
Cloud-Barista 제3차 오픈 컨퍼런스 : CB-Spider - 멀티 클라우드 인프라 연동(Multi-Cloud Infrastruc...Cloud-Barista Community
 
04.실행환경 교육교재(화면처리)
04.실행환경 교육교재(화면처리)04.실행환경 교육교재(화면처리)
04.실행환경 교육교재(화면처리)Hankyo
 
[Hello world 오픈세미나]open api client개발
[Hello world 오픈세미나]open api client개발[Hello world 오픈세미나]open api client개발
[Hello world 오픈세미나]open api client개발NAVER D2
 
스프링군살없이세팅하기(The way to setting the Spring framework for web.)
스프링군살없이세팅하기(The way to setting the Spring framework for web.)스프링군살없이세팅하기(The way to setting the Spring framework for web.)
스프링군살없이세팅하기(The way to setting the Spring framework for web.)EunChul Shin
 
자바 서블릿과 세션 (Java Servlet, Session)
자바 서블릿과 세션 (Java Servlet, Session)자바 서블릿과 세션 (Java Servlet, Session)
자바 서블릿과 세션 (Java Servlet, Session)Yu Yongwoo
 
안드로이드 빌드: 설탕없는 세계
안드로이드 빌드: 설탕없는 세계안드로이드 빌드: 설탕없는 세계
안드로이드 빌드: 설탕없는 세계Leonardo YongUk Kim
 
Spring one참석기 ksug
Spring one참석기 ksugSpring one참석기 ksug
Spring one참석기 ksugSanghyuk Jung
 
MariaDB Administrator 교육
MariaDB Administrator 교육 MariaDB Administrator 교육
MariaDB Administrator 교육 Sangmo Kim
 
DB Monitoring 개념 및 활용 (박명규)
DB Monitoring 개념 및 활용 (박명규)DB Monitoring 개념 및 활용 (박명규)
DB Monitoring 개념 및 활용 (박명규)WhaTap Labs
 

Similaire à 윤석진 Jco jdbc (20)

[JCO 컨퍼런스] 웹사이트 Front-End 성능 최적화
[JCO 컨퍼런스] 웹사이트 Front-End 성능 최적화[JCO 컨퍼런스] 웹사이트 Front-End 성능 최적화
[JCO 컨퍼런스] 웹사이트 Front-End 성능 최적화
 
J2 Ee
J2 EeJ2 Ee
J2 Ee
 
2013 JCO tipJS.com JavaScript MVC framework
2013 JCO tipJS.com JavaScript MVC framework2013 JCO tipJS.com JavaScript MVC framework
2013 JCO tipJS.com JavaScript MVC framework
 
[KAU UMC 컨퍼런스] Java 기반 Web의 역사 - 김준기
[KAU UMC 컨퍼런스] Java 기반 Web의 역사 - 김준기[KAU UMC 컨퍼런스] Java 기반 Web의 역사 - 김준기
[KAU UMC 컨퍼런스] Java 기반 Web의 역사 - 김준기
 
Nginx Testing in NAVER
Nginx Testing in NAVERNginx Testing in NAVER
Nginx Testing in NAVER
 
All about JDBC Performance Tuning_Wh apm
All about JDBC Performance Tuning_Wh apmAll about JDBC Performance Tuning_Wh apm
All about JDBC Performance Tuning_Wh apm
 
02.실행환경 실습교재(데이터처리)
02.실행환경 실습교재(데이터처리)02.실행환경 실습교재(데이터처리)
02.실행환경 실습교재(데이터처리)
 
Percona server for MySQL 제품 소개
Percona server for MySQL 제품 소개Percona server for MySQL 제품 소개
Percona server for MySQL 제품 소개
 
올챙이(Tadpole for DB Tools)로 살펴보는 Eclipse RAP
올챙이(Tadpole for DB Tools)로 살펴보는 Eclipse RAP올챙이(Tadpole for DB Tools)로 살펴보는 Eclipse RAP
올챙이(Tadpole for DB Tools)로 살펴보는 Eclipse RAP
 
03.[참고]표준프레임워크기반 개발방법
03.[참고]표준프레임워크기반 개발방법03.[참고]표준프레임워크기반 개발방법
03.[참고]표준프레임워크기반 개발방법
 
Cloud-Barista 제3차 오픈 컨퍼런스 : CB-Spider - 멀티 클라우드 인프라 연동(Multi-Cloud Infrastruc...
Cloud-Barista 제3차 오픈 컨퍼런스 : CB-Spider - 멀티 클라우드 인프라 연동(Multi-Cloud Infrastruc...Cloud-Barista 제3차 오픈 컨퍼런스 : CB-Spider - 멀티 클라우드 인프라 연동(Multi-Cloud Infrastruc...
Cloud-Barista 제3차 오픈 컨퍼런스 : CB-Spider - 멀티 클라우드 인프라 연동(Multi-Cloud Infrastruc...
 
04.실행환경 교육교재(화면처리)
04.실행환경 교육교재(화면처리)04.실행환경 교육교재(화면처리)
04.실행환경 교육교재(화면처리)
 
[Hello world 오픈세미나]open api client개발
[Hello world 오픈세미나]open api client개발[Hello world 오픈세미나]open api client개발
[Hello world 오픈세미나]open api client개발
 
스프링군살없이세팅하기(The way to setting the Spring framework for web.)
스프링군살없이세팅하기(The way to setting the Spring framework for web.)스프링군살없이세팅하기(The way to setting the Spring framework for web.)
스프링군살없이세팅하기(The way to setting the Spring framework for web.)
 
자바 서블릿과 세션 (Java Servlet, Session)
자바 서블릿과 세션 (Java Servlet, Session)자바 서블릿과 세션 (Java Servlet, Session)
자바 서블릿과 세션 (Java Servlet, Session)
 
안드로이드 빌드: 설탕없는 세계
안드로이드 빌드: 설탕없는 세계안드로이드 빌드: 설탕없는 세계
안드로이드 빌드: 설탕없는 세계
 
Netra intro v4
Netra intro v4Netra intro v4
Netra intro v4
 
Spring one참석기 ksug
Spring one참석기 ksugSpring one참석기 ksug
Spring one참석기 ksug
 
MariaDB Administrator 교육
MariaDB Administrator 교육 MariaDB Administrator 교육
MariaDB Administrator 교육
 
DB Monitoring 개념 및 활용 (박명규)
DB Monitoring 개념 및 활용 (박명규)DB Monitoring 개념 및 활용 (박명규)
DB Monitoring 개념 및 활용 (박명규)
 

Plus de Sukjin Yun

동영상입문
동영상입문동영상입문
동영상입문Sukjin Yun
 
Enterprise Java web Deployment Strategy
Enterprise Java web Deployment StrategyEnterprise Java web Deployment Strategy
Enterprise Java web Deployment StrategySukjin Yun
 
Geb quick start
Geb quick startGeb quick start
Geb quick startSukjin Yun
 
BDD with Spock
BDD with SpockBDD with Spock
BDD with SpockSukjin Yun
 
Scala quick start
Scala quick startScala quick start
Scala quick startSukjin Yun
 
Spring java config
Spring java configSpring java config
Spring java configSukjin Yun
 
Design pattern 옵저버
Design pattern 옵저버Design pattern 옵저버
Design pattern 옵저버Sukjin Yun
 
docker_quick_start
docker_quick_startdocker_quick_start
docker_quick_startSukjin Yun
 
Rabbitmq install한글
Rabbitmq install한글Rabbitmq install한글
Rabbitmq install한글Sukjin Yun
 
Weblogic install
Weblogic installWeblogic install
Weblogic installSukjin Yun
 
무료로 워드프레스시작하기
무료로 워드프레스시작하기무료로 워드프레스시작하기
무료로 워드프레스시작하기Sukjin Yun
 
Ldap serise v1
Ldap serise v1Ldap serise v1
Ldap serise v1Sukjin Yun
 
Android studio
Android studioAndroid studio
Android studioSukjin Yun
 
20130709 gradle
20130709 gradle20130709 gradle
20130709 gradleSukjin Yun
 

Plus de Sukjin Yun (20)

동영상입문
동영상입문동영상입문
동영상입문
 
Enterprise Java web Deployment Strategy
Enterprise Java web Deployment StrategyEnterprise Java web Deployment Strategy
Enterprise Java web Deployment Strategy
 
Geb quick start
Geb quick startGeb quick start
Geb quick start
 
BDD with Spock
BDD with SpockBDD with Spock
BDD with Spock
 
Scala quick start
Scala quick startScala quick start
Scala quick start
 
Spring java config
Spring java configSpring java config
Spring java config
 
Design pattern 옵저버
Design pattern 옵저버Design pattern 옵저버
Design pattern 옵저버
 
docker_quick_start
docker_quick_startdocker_quick_start
docker_quick_start
 
Rabbitmq install한글
Rabbitmq install한글Rabbitmq install한글
Rabbitmq install한글
 
Servlet3
Servlet3Servlet3
Servlet3
 
Weblogic install
Weblogic installWeblogic install
Weblogic install
 
무료로 워드프레스시작하기
무료로 워드프레스시작하기무료로 워드프레스시작하기
무료로 워드프레스시작하기
 
Start groovy
Start groovyStart groovy
Start groovy
 
Pygame
PygamePygame
Pygame
 
Annotation
AnnotationAnnotation
Annotation
 
마리아Db
마리아Db마리아Db
마리아Db
 
Intellij java
Intellij javaIntellij java
Intellij java
 
Ldap serise v1
Ldap serise v1Ldap serise v1
Ldap serise v1
 
Android studio
Android studioAndroid studio
Android studio
 
20130709 gradle
20130709 gradle20130709 gradle
20130709 gradle
 

윤석진 Jco jdbc