您的位置:首页 > 编程语言 > Java开发

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

2013-09-21 09:39 344 查看
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()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: