【安博培训技术】Java6 JDBC编程 20130921

来源:互联网 发布:伊朗女孩 知乎 编辑:程序博客网 时间:2024/05/21 00:55
JDBC编程


课程介绍
  目的:掌握和熟练运用JDBC编程技术
  内容:数据库简介、JDBC概念及其工作原理、JDBC编程、JDBC-ODBC编程
  重点:JDBC编程
  难点:可滚动和可更新结果集、高级SQL类型BLOB/CLOB的使用


JDBC编程
  数据库简介
   JDBC基本概念
   JDBC编程
   JDBC-ODBC编程
   JDBC编程进阶
 
一. 数据库简介
  关系型数据库
  SQL语言
  ODBC


数据库入门 
  数据库(Data Base, DB)
  数据库管理系统(Data Base Management System, DBMS)


关系型数据库
  关系型数据库(Relationship Data Base, RDB)
  关系型数据库管理系统(RDBMS) 
  SQL语言(Structured Query Language)
  使用关系模型的数据库语言,用于和各类数据库的交互,提供通用的数据管理和查询功能。
  常用SQL指令:
  SELECT 、INSERT、DELETE、UPDATE、CREATE、DROP


二. JDBC基本概念
  JDBC概述
  JDBC驱动程序
  JDBC URL


JDBC概述
  JDBC(Java DataBase Connectivity)
  JDBC功能:
  支持基本SQL语句,在Java程序中实现数据库操作功能并简化操作过程
  提供多样化的数据库连接方法
  为各种不同的数据库提供统一的操作界面
  JDBC API
   java.sql.DriverManager类
   java.sql.Driver接口
   java.sql.Connection接口
   java.sql.Statement接口
   java.sql.ResultSet接口


JDBC工作原理


JDBC驱动程序
  什么是驱动程序?
  数据库驱动程序(DataBase Driver)
  JDBC驱动程序分类:
  第一类:JDBC-OCBC桥
  第二类:Java到本地API
  第三类:Java到网络协议
  第四类:Java到数据库协议


数据库URL
  JDBC技术中使用数据库URL来标识目标数据库
  数据库URL格式:
  jdbc:<子协议名>:<子名称>
  "jdbc"为协议名,确定不变;
  <子协议名>指定目标数据库的种类和具体连接方式;
  <子名称>指定具体的数据库/数据源连接信息(如数据库服务器IP地址、通信端口、ODBC数据源名称、用户名/密码等)。
  子名称的格式和内容随子协议的不同而改变。
  数据库URL举例:
    jdbc:oracle:thin:@166.111.78.98:1521:ora9
    jdbc:microsoft:sqlserver://127.0.0.1:1433
    jdbc:microsoft:sqlserver://127.0.0.1:1433;databasename=pubs


三. JDBC编程
  JDBC编程基本步骤
  执行SQL语句
  获取数据库元数据
  访问SQL Server数据库


JDBC编程基本步骤
  JDBC编程基本步骤
  加载驱动程序
  建立到指定数据库的连接
  提交数据库查询
  取得查询结果
  应用举例:
  例18-1 JDBCExample.java


ResultSet常用getXXX()方法
     方法名称     返回值类型
      getBoolean()      boolean
      getByte()      byte
      getBytes()      byte[]
      getDate()      java.sql.Date
      getDouble()      double
      getFloat()      float
      getInt()      int
      getLong()      long
      getObject()      Object
      getShort()      short
      getString()      java.lang.String
      getTime()      java.sql.Time


SQL-Java类型对应关系
       SQL类型 Java 类型
        BIT  boolean
        TINYINT  byte
        BINARY  byte[]
        VARBINARY  byte[]
        LONGVARBINARY  byte[]
        Date  java.sql.Date
        FLOAT  double
        DOUBLE  double
        REAL  float
        INTEGER  int
        BIGINT  long
        SMALLINT  short
        CHAR  java.lang.String
        VARCHAR  java.lang.String
        LONGVARCHAR  java.lang.String


执行SQL语句
  执行DML语句
  执行DDL语句


访问SQL Server数据库
  准备SQL Server数据库JDBC驱动程序
    从微软网站下载JDBC驱动程序安装文件
    本地安装该驱动程序包
    重新设置CLASSPATH环境变量


五. JDBC编程进阶
  使用属性文件配置运行环境信息
  OCI方式访问Oracle数据库
  可滚动和可更新结果集
  预处理语句
  调用存储过程
  事务处理
  批处理
  高级SQL类型BLOB/CLOB


使用属性文件配置运行环境信息
  将数据库连接信息(URL、用户名/密码等)保存到专门的属性文件中,而不在程序中直接给出


可滚动/可更新结果集
  结果集类型
    不可滚动(FORWARD_ONLY)
    滚动不敏感(SCROLL_INSENSITIVE)
    滚动敏感(SCROLL_SENSITIVE)
  结果集并发模式
    只读的(READ_ONLY)
    可更新的(UPDATABLE)
  Connection接口中提供的重载方法createStatement()用于获取可滚动/可更新结果集。


检测结果集类型
  结果集类型与并发模式常量
       常量含义
      ResultSet. TYPE_FORWARD_ONLY 不可滚动结果集
      ResultSet. TYPE_SCROLL_INSENSITIVE 滚动不敏感结果集
      ResultSet. TYPE_SCROLL_SENSITIVE 滚动敏感结果集
      ResultSet. CONCUR_READ_ONLY 只读结果集
      ResultSet. CONCUR_UPDATABLE 可更新结果集
  使用JDBC元数据API进行检测


使用可滚动结果集
  对于可滚动结果集,可以使用ResultSet接口中定义的下述方法进行遍历:
  boolean next()
  boolean previous()
  boolean first()
  boolean last()
  void beforeFirst()
  void afterLast()
  boolean relative(int rows)
  boolean absolute(int row)
  int getRow()


使用可更新结果集
  对于可更新结果集,可以使用ResultSet接口中定义的下述方法进行更新操作:
    void updateXXX(String columnName, XXX x)
    void updateXXX(int columnIndex, XXX x)
    void updateRow()
    void moveToInsertRow()
    void insertRow()
    void moveToCurrentRow()
    void deleteRow()
    void cancelRowUpdates()


预处理语句
  java.sql.PreparedStatement接口提供了执行预编译SQL语句的功能,它继承了java.sql.Statement接口。
  Connection对象的prepareStatement(String sql)方法可创建并返回PreparedStatement对象。
  PreparedStatement接口主要方法:
    void setXXX(int parameterIndex, XXX x)
    ResultSet executeQuery()
    int executeUpdate()


调用存储过程
  java.sql.CallableStatement接口提供了调用数据库服务器端存储过程(Procedure)的功能,它继承了java.sql. PreparedStatement接口。
  Connection对象的prepareCall(String sql)方法可创建并返回CallableStatement对象。
  CallableStatement接口主要方法:
    void setXXX(int parameterIndex, XXX x)
    boolean execute()


事务处理
  和数据库中的事务管理模式相对应,JDBC中的Connection对象也可分为自动提交和非自动提交两种模式。
  JDBC驱动程序的默认事务管理模式为"自动提交"。
    Connection接口提供的事务处理相关方法:
    void setAutoCommit(boolean autoCommit)
    boolean getAutoCommit()
    void commit()
    void rollback()


事务处理之部分回滚
  从JDBC3.0开始支持在事务中使用保存点技术,以实现对数据库事务的进一步控制、即支持部分回滚功能。
  java.sql.Savepoint接口表示数据库事务中的保存点。
  在Connection对象的rollback()方法中可以对当前事务中的保存点进行引用,从而将事务回滚到该保存点。


批处理
  JDBC2.0开始提供了对数据库操作的批处理(Batch Processing)功能,使用批处理功能避免了向数据库进行一连串的调用,从而显著提高程序的运行效率。
  Statement接口提供的批处理相关方法:
    void addBatch(String sql)
    int[] executeBatch()
    void clearBatch()
原创粉丝点击