`
glacier3
  • 浏览: 390550 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

JDBC

阅读更多
l. 连接到数据库的方法
答:1) ODBC(Open Database Connectivity)
      一个以C语言为基础访问SQL为基础数据库引擎的接口,它提供了一致的接口用于和数据库沟通以及访问数据。
   2) JDBC
      Java版本的ODBC

2. JDBC应用编程接口
答:JDBC应用编程接口是:
   1) 标准的数据访问接口,可以连到不同的数据库;
   2) JAVA编程语言的一组类和接口。
   JDBC应用编程接口能够:
   1) 连接到数据库;
   2) 发SQL查询字符串到数据库;
   3) 处理结果。
   JDBC应用编程接口有二个主要的部分:
   1) JAVA应用程序开发接口面向JAVA应用程序开发者;
   2) JDBC驱动程序开发接口
   
3. JDBC Driver
答:1) 一大堆实现了JDBC类和接口的类;
   2) 提供了一个实现java.sql.Driver接口的类。

4. JDBC Driver的四种类型
答:1) JDBC-ODBC桥
   由ODBC驱动提供JDBC访问
   2) 本地API
   部分Java driver把JDBC调用转化成本地的客户端API
   3) JDBC-net
   纯的Java driver,将JDBC调用转入DBMS,与网络协议无关。然后通过服务器将调用转为DBMS协议。
   4) 本地协议
   纯的java driver,将JDBC调用直接转为DBMS使用的网络协议

5. JDBC开发者接口
答:1) java.sql--java 2平台下JDBC的主要功能,标准版(J2SE)
   2) javax.sql--java 2平台下JDBC增强功能,企业版(J2EE)

6. 使用URL确认数据库
答:我们使用URL来确定一个数据库(正确的Driver,正确的主机,正确的协议,正确的协议,正确的用户名和密码);
   语法:protocol:subprotocol:subname
   范例:jdbc:db2:MyTest
         jdbc:db2://localhost:6789/MyTest

7. javax.sql包JDBC2.0的增强功能
答:1) 数据源接口;
   2) 连接池;
   3) 分布式交易;
   4) 行集;

8. 创建一个基本的JDBC应用
答:1) 步骤一:注册一个driver;
   2) 步骤二:建立一个到数据库的连接;
   3) 步骤三:创建一个statement;
   4) 步骤四:执行SQL语句;
   5) 步骤五:处理结果;
   6) 步骤六:关闭JDBC对象

9. 注册一个Driver(步骤一)
答:1) driver被用于连接到数据库;
   2) JDBC应用编程接口使用第一个能成功连接到给定URL的driver;
   3) 在同一时间可以装载多个driver

10.注册一个driver的方法:
答:1) 使用类loader(装载;实例化;注册入DriverManager)
      a. Class.forName("Com.ibm.db2.jdbc.app.DB2Driver");
      b. Class.forName("Com.ibm.db2.jdbc.net.DB2Driver");
      c. Class.forName("Com.microsoft.jdbc.sqlServer.SQLServerDriver);
      d. Class.forName("oracl.jdbc.driver.OracleDriver");
      e. Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
   2) 实例化一个Driver
      a. Driver drv = new COM.cloudscape.core.RmiJdbcDriver();

1. 建立一个到数据库的连接(步骤二)
答:DriverManager调用getConnection(urlString)方法,实际上调用的是driver的connect(urlString)方法;
   1) 当一个driver肯定地对应到一个数据库URL,DriverManager建立一个连接;
   2) 当没有driver匹配,返回null然后下一个driver被检验;
   3) 假如没有建立连接,抛出一个SQLExcepiton异常

2. 经常使用的一些JDBC URL
答:1) JDBC-ODBC: jdbc:odbc:<DB>
   2) Oracle: jdbc:oracle:oci:@<sid> or jdbc:oracle:thin:@<SID>
   3) Weblogic MS-SQL: jdbc:weblogic:mssqlserver4:<DB>@<HOST>:<PORT>
   4) DB2: jdbc:db2:MyTest or jdbc.db2://localhost:6789/MyTest(需要用户名和密码)

3. Driver连接方法
答:1) 创建一个到指定Driver实例的直接调用;
   2) 避免一般访问的问题
      Driver drv = new COM.ibm.db2.jdbc.app.DB2Driver();
      Connection con = null;
      try {con = drv.connect("jdbc:db2:MyTest",new Properties())}
      catch(SQLException e){}

4. 创建一个Statement(步骤三)
答:1) Statement的三个接口:
      a. Statement;
      b. PreparedStatement(继承自Statement);
      c. CallableStatement(继承自PreparedStatement);
   2) 使用方法Connection.createStatement()得到一个Statement对象

5. PreparedStatement对象
答:1) 调用ProparedStatement比statement更为高效;
   2) 继承自Statement;
   3) 语法:PreparedStatement pstm = connection.prepareStatement(sqlString);

6. CallableStatement对象
答:1) 通过CallableStatement调用数据库中的存储过程;
   2) 继承自PreparedStatement;
   3) CallableStatement cstm = connection.prepareCall("{call return_student[?,?]}");
      cstm.setString(1,"8623034");
      cstm.registerOutparameter(2, Types.REAL);
      cstm.execute();
      float gpa = cstm.getFloat(2);

7. Statement接口的比较
答:             | Statement           | PreparedStatement         |  CallableStatement
   ------------------------------------------------------------------------------
   写代码位置   |   客户端            | 客户端                    |  服务器端
   ------------------------------------------------------------------------------
   写代码位置   |   客户端            | 服务器端                  |  服务器端
   ------------------------------------------------------------------------------
   编写代码技术 |Java,SQL操作        |Java,SQL操作              |  数据库的程序语言,如PL/SQL
   ------------------------------------------------------------------------------
   可配置性     |   高                |第一次高,以后低           |  低
   ------------------------------------------------------------------------------
   可移植性     |   高                |假设支持PreparedStatement的话高
   ------------------------------------------------------------------------------
   传输效率     |   低                |第一次低,以后高           |  高

8. 执行SQL Statement(步骤四)
答:通过接口方法将SQL语句传输至黙认的数据库连接,返回结果可能是一个数据表,可以通过java.sql.ResultSet访问。
   1) Statement的接口方法:
   a. executeQuery(sqlString): 执行给定的SQL声明,返回一个结果集(ResultSet)对象;
   b. executeUpdate(sqlString): 执行给定的SQL声明,可以是INSERT、UPDATE或DELETE声明,也可以是SQL DDL声明;
   c. execute(sqlString): 执行给定的SQL声明。

9. 处理结果(步骤五)
答:1) 使用结果集(ResultSet)对象的访问方法获取数据;
      a. next():下一个记录
      b. first():第一个记录
      c. last():最后一个记录
      d. previous():上一个记录
   2) 通过字段名或索引取得数据
   3) 结果集保持了一个指向了当前行的指针,初始化位置为第一个记录前。

10. 关闭JDBC对象(步骤六)
答:1) 首先关闭记录集;
   2) 其次关闭声明;
   3) 最后关闭连接对象。

11. 数据表和类对应的三种关系:
答:1) 一个表对应一个类;
   2) 一个表对应相关类;
   3) 一个表对应整个类关系层

12. 类间关系的几种表设计:
答:1) 多对一,
   2) 一对一:
   3) 一对多:
   4) 多对多:

13. SQL数据类型及其相应的Java数据类型
答:SQL数据类型                     Java数据类型              说明
   ------------------------------------------------------------------
   INTEGER或者INT                  int                     通常是个32位整数
   SMALLINT                        short                   通常是个16位整数
   NUMBER(m,n) DECIMAL(m,n)        Java.sql.Numeric        合计位数是m的定点十进制数,小数后面有n位数
   DEC(m,n)                        Java.sql.Numeric        合计位数是m的定点十进制数,小数后面有n位数
   FLOAT(n)                        double                  运算精度为n位二进制数的浮点数
   REAL                            float                   通常是32位浮点数
   DOUBLE                          double                  通常是64位浮点数
   CHARACTER(n)或CHAR(n)           String                  长度为n的固定长度字符串
   VARCHAR(n)                      String                  最大长度为n的可变长度字符串
   BOOLEAN                         boolean                 布尔值
   DATE                            Java.sql.Date           根据具体设备而实现的日历日期
   TIME                            Java.sql.Time           根据具体设备而实现的时戳
   TIMESTAMP                       Java.sql.Timestamp      根据具体设备而实现的当日日期和时间
   BLOB                            Java.sql.Blob           二进制大型对象
   CLOB                            Java.sql.Clob           字符大型对象
   ARRAY                           Java.sql.Array

1. 元数据
答:关于数据的信息,例如类型或者容量。通过JDBC API可以访问:
   1) 数据库元数据;
      a. 使用connection.getMetadata方法返回DataMetaData引用
      b. 能够使用isReadOnly此类方法获取信息
   2) 结果集元数据;
      a. 使用ResultSet.getMetadata方法返回ResultSetMetaData引用
      b. 能够使用getColumnCount此类方法获取信息

2. 事务处理
答:1) 一系列的动作作为一个不可分的操作;
   2) JDBC API中使用事务处理步骤:
      a. 用false作为参数调用setAutoCommit方法;
      b. 执行一或多个关于数据库的操作;
      c. 调用commit方法完成改变;
      d. 恢复上次提交后的改变,调用rollback方法.

      try
      {
         con.setAutoCommit(false);
         Statement stm = con.createStatement();
         stm.executeUpdate("insert into student(name, age, gpa) values('gzhu', 30, 4.8)");
         stm.commit();
      }
      catch(SQLException e)
      {
         try
         {
            con.rollback();
         }
         catch(Exception e)
         {
         }
      }

3. 并发控制
答:1) 设置隔离级别方法:setTransactionIsolation
   2) 隔离级别静态变量
      a. TRANSACTION_NONE:只读的数据字典;
      b. TRANSACTION_READ_UNCOMMITTED:只读未提交数据;
      c. TRANSACTION_READ_COMMITTED:只读未提交数据;
      d. TRANSACTION_REPEATABLE_READ:重复读取数据;
      e. TRANSACTION_SERIALIZABLE:无论做什么操作都不许别人动。
   3) 示例:con.setTransactionIsolation(Connection.TRANSACTION_READ_UNCOMMITTED);

4. JDBC 2.0 应用程序编程接口增强功能
答:1) ResultSet增强:
      a. 可以回卷;
      b. 可以修改;
      设置示例:Statement stm = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
   2) Statement增强了批量修改能力(batch updates);
   3) 更高级的数据类型(例:Struct)。

5. JDBC 2.0标准扩展
答:1) JNDI(Java Naming and Directory Interface): 解决离散状态下Object的查找;
   2) 连接池:在内存中保存了一个数据库连接,不需要注册驱动器,提高性能的重要方法。


分享到:
评论

相关推荐

    JDBCDriver3.0.rar_jdbc driver 3.0_sql jdbc 3.0_sql server jdbc_s

    《深入理解JDBC Driver 3.0:聚焦SQL Server JDBC》 在IT行业中,数据库连接是应用程序与数据存储之间的桥梁,而JDBC(Java Database Connectivity)则是Java平台中用于访问数据库的标准API。JDBC Driver 3.0是针对...

    sqlserver驱动包 jdbc驱动 sqljdbc.jar和sqljdbc4.jar

    SQL Server驱动包是用于Java应用程序通过JDBC(Java Database Connectivity)接口与Microsoft SQL Server数据库进行交互的必备组件。本文将详细介绍这两个重要的驱动文件——sqljdbc.jar和sqljdbc4.jar,以及如何...

    jdbc-odbc.zip_jdbc-odbc download

    Java数据库连接(JDBC)是Java编程语言中用于与各种数据库进行交互的一组接口和类。JDBC-ODBC桥是JDBC最初提供的一种连接数据库的方式,它允许Java应用程序通过ODBC(Open Database Connectivity)来访问数据库。...

    sqljdbc和sqljdbc4 sqlserver最新驱动

    SQLJDBC和SQLJDBC4是Microsoft为Java应用程序提供的用于连接SQL Server数据库的驱动程序。这两个版本都是JDBC(Java Database Connectivity)驱动,允许Java开发者在应用程序中与SQL Server进行交互。下面将详细介绍...

    Spring Data JDBC与JDBC的区别

    Spring Data JDBC与JDBC是两种不同的数据库访问方式,它们在Java开发中有着广泛的应用。JDBC(Java Database Connectivity)是Java平台的标准API,用于与各种数据库进行交互。它提供了低级别的数据库操作,如建立...

    sql server jdbc驱动

    SQL Server JDBC驱动是Microsoft公司为SQL Server数据库开发的一套Java数据库连接驱动,它允许Java应用程序通过Java数据库连接API(JDBC)与SQL Server数据库进行交互。JDBC是Java中用于数据库交互的标准API,它提供...

    mysql jdbc 驱动 适用于5.6版本及以下数据库

    mysql jdbc 驱动 适用于5.6版本及以下数据库 mysql jdbc 驱动 适用于5.6版本及以下数据库 mysql jdbc 驱动 适用于5.6版本及以下数据库 mysql jdbc 驱动 适用于5.6版本及以下数据库 mysql jdbc 驱动 适用于5.6版本及...

    mysql jdbc 驱动 适用于5.7及以上版本数据库

    mysql jdbc 驱动 适用于5.7及以上版本数据库 mysql jdbc 驱动 适用于5.7及以上版本数据库 mysql jdbc 驱动 适用于5.7及以上版本数据库 mysql jdbc 驱动 适用于5.7及以上版本数据库 mysql jdbc 驱动 适用于5.7及以上...

    sqljdbc41、sqljdbc42的官方jar包

    在Java编程语言中,JDBC(Java Database Connectivity)是一个核心的API,用于连接Java应用程序与各种类型的数据库。这里我们关注的是两个特定版本的Microsoft SQL Server的JDBC驱动:sqljdbc41.jar和sqljdbc42.jar...

    sqljdbc4.jar和sqljdbc.jar下载

    sqljdbc.jar 类库提供对 JDBC 3.0 的支持。 sqljdbc.jar 类库要求使用 5.0 版的 Java 运行时环境 (JRE)。连接到数据库时,在 JRE 6.0 上使用 sqljdbc.jar 会引发异常。 注意: JDBC Driver 2.0 不支持 JRE 1.4。...

    Dm7JdbcDriver16.jar Dm7JdbcDriver17.jar Dm7JdbcDriver18.jar

    在给定的压缩包文件中,包含了三个不同版本的达梦JDBC驱动,分别是Dm7JdbcDriver16.jar、Dm7JdbcDriver17.jar和Dm7JdbcDriver18.jar。 1. **JDBC驱动介绍**: JDBC是Java中用于与各种数据库进行交互的标准接口,它...

    oracle jdbc 驱动,支持oracle 19c

    为了实现Java应用程序与Oracle数据库之间的连接,Oracle公司提供了JDBC(Java Database Connectivity)驱动。JDBC是一种Java API,用于连接和执行查询与数据库的操作。随着技术的不断更新,Oracle数据库也在不断地...

    自学jdbc心得体会

    JDBC 基础知识点 JDBC(Java Database Connectivity)是一种Java标准的数据库连接API,它允许Java程序访问各种关系数据库。下面是JDBC的基础知识点: 一、JDBC原理概述 * JDBC是一套协议,由Sun定义的一组接口,...

    kingbaseV8 jdbc 驱动

    KingbaseV8 JDBC驱动是连接KingbaseV8数据库的重要组件,允许Java应用程序通过JDBC(Java Database Connectivity)接口与数据库进行交互。JDBC是Java语言中用来规范客户端程序如何访问数据库的应用程序接口,提供了...

    sql server2000 jdbc

    SQL Server 2000 JDBC 是Java编程语言与Microsoft SQL Server 2000数据库进行交互的一种重要方式。JDBC(Java Database Connectivity)是Java API,允许Java应用程序通过Java虚拟机(JVM)与各种数据库建立连接。在...

    Access_JDBC30

    标题 "Access_JDBC30" 暗示了这是一个与Microsoft Access数据库相关的Java JDBC驱动程序。JDBC(Java Database Connectivity)是Java编程语言中用于连接和操作数据库的标准接口。这个jar包,"Access_JDBC30.jar",...

    sqljdbc4(sqlserver jdbc驱动下载和安装)

    在IT行业中,数据库是至关重要的组成部分,而SQL Server作为一款广泛应用的关系型数据库管理系统,它的连接与操作离不开JDBC(Java Database Connectivity)驱动。本篇将详细介绍如何下载和安装sqljdbc4,这是...

    access的jdbc驱动

    Access的JDBC驱动是Java数据库连接(Java Database Connectivity, JDBC)的一种实现,它允许Java程序与Microsoft Access数据库进行交互。在JDK 1.8之后,Oracle公司不再默认提供对ODBC(Open Database Connectivity...

    java jdbc 需要包

    Java JDBC(Java Database Connectivity)是Java编程语言中用于与各种数据库进行交互的一组接口和类。它提供了一种标准化的方法,让程序员可以使用SQL语句访问数据库,而无需关心具体的数据库实现细节。在Java应用...

Global site tag (gtag.js) - Google Analytics