JDBC基础学习笔记总结与讨论

开发 后端
本文是JDBC基础学习的笔记,包括连接到数据库的方法、JDBC应用编程接口、JDBC Driver的四种类型等等内容。

JDBC基础l.连接到数据库的方法

答:1)ODBC(OpenDatabaseConnectivity)

一个以C语言为基础访问SQL为基础数据库引擎的接口,它提供了一致的接口用于和数据库沟通以及访问数据。

2)JDBC

Java版本的ODBC

JDBC基础2.JDBC应用编程接口

答:JDBC应用编程接口是:

1)标准的数据访问接口,可以连到不同的数据库;

2)JAVA编程语言的一组类和接口。

JDBC应用编程接口能够:

1)连接到数据库;

2)发SQL查询字符串到数据库;

3)处理结果。

JDBC应用编程接口有二个主要的部分:

1)JAVA应用程序开发接口面向JAVA应用程序开发者;

2)JDBC驱动程序开发接口

JDBC基础3.JDBCDriver

答:1)一大堆实现了JDBC类和接口的类;

2)提供了一个实现java.sql.Driver接口的类。

JDBC基础4.JDBCDriver的四种类型

答:1)JDBC-ODBC桥

由ODBC驱动提供JDBC访问

2)本地API

部分Javadriver把JDBC调用转化成本地的客户端API

3)JDBC-net

纯的Javadriver,将JDBC调用转入DBMS,与网络协议无关。然后通过服务器将调用转为DBMS协议。

4)本地协议

纯的javadriver,将JDBC调用直接转为DBMS使用的网络协议

JDBC基础5.JDBC开发者接口

答:1)java.sql--java2平台下JDBC的主要功能,标准版(J2SE)

2)javax.sql--java2平台下JDBC增强功能,企业版(J2EE)

JDBC基础6.使用URL确认数据库

答:我们使用URL来确定一个数据库(正确的Driver,正确的主机,正确的协议,正确的协议,正确的用户名和密码);

语法:protocol:subprotocol:subname

范例:jdbc:db2:MyTest

jdbc:db2://localhost:6789/MyTest

JDBC基础7.javax.sql包JDBC2.0的增强功能

答:1)数据源接口;

2)连接池;

3)分布式交易;

4)行集;

JDBC基础8.创建一个基本的JDBC应用

答:1)步骤一:注册一个driver;

2)步骤二:建立一个到数据库的连接;

3)步骤三:创建一个statement;

4)步骤四:执行SQL语句;

5)步骤五:处理结果;

6)步骤六:关闭JDBC对象

JDBC基础9.注册一个Driver(步骤一)

答:1)driver被用于连接到数据库;

2)JDBC应用编程接口使用***个能成功连接到给定URL的driver;

3)在同一时间可以装载多个driver

JDBC基础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.Driverdrv=newCOM.cloudscape.core.RmiJdbcDriver();

JDBC基础

1.建立一个到数据库的连接(步骤二)

答:DriverManager调用getConnection(urlString)方法,实际上调用的是driver的connect(urlString)方法;

1)当一个driver肯定地对应到一个数据库URL,DriverManager建立一个连接;

2)当没有driver匹配,返回null然后下一个driver被检验;

3)假如没有建立连接,抛出一个SQLExcepiton异常

2.经常使用的一些JDBCURL

答:1)JDBC-ODBC:jdbc:odbc:

2)Oracle:jdbc:oracle:oci:@orjdbc:oracle:thin:@

3)WeblogicMS-SQL:jdbc:weblogic:mssqlserver4:@:

4)DB2:jdbc:db2:MyTestorjdbc.db2://localhost:6789/MyTest(需要用户名和密码)

3.Driver连接方法

答:1)创建一个到指定Driver实例的直接调用;

2)避免一般访问的问题

  1. Driverdrv=newCOM.ibm.db2.jdbc.app.DB2Driver();  
  2. Connectioncon=null;  
  3. try{con=drv.connect("jdbc:db2:MyTest",newProperties())}  
  4. catch(SQLExceptione){} 

4.创建一个Statement(步骤三)

答:1)Statement的三个接口:

a.Statement;

b.PreparedStatement(继承自Statement);

c.CallableStatement(继承自PreparedStatement);

2)使用方法Connection.createStatement()得到一个Statement对象

5.PreparedStatement对象

答:1)调用ProparedStatement比statement更为高效;

2)继承自Statement;

3)语法:PreparedStatementpstm=connection.prepareStatement(sqlString);

6.CallableStatement对象

答:1)通过CallableStatement调用数据库中的存储过程;

2)继承自PreparedStatement;

3)CallableStatementcstm=connection.prepareCall("{callreturn_student[?,?]}");

  1. cstm.setString(1,"8623034");  
  2. cstm.registerOutparameter(2,Types.REAL);  
  3. cstm.execute();  
  4. floatgpa=cstm.getFloat(2); 

7.Statement接口的比较

答:|Statement|PreparedStatement|CallableStatement

------------------------------------------------------------------------------

写代码位置|客户端|客户端|服务器端

------------------------------------------------------------------------------

写代码位置|客户端|服务器端|服务器端

------------------------------------------------------------------------------

编写代码技术|Java,SQL操作|Java,SQL操作|数据库的程序语言,如PL/SQL

------------------------------------------------------------------------------

可配置性|高|***次高,以后低|低

------------------------------------------------------------------------------

可移植性|高|假设支持PreparedStatement的话高

------------------------------------------------------------------------------

传输效率|低|***次低,以后高|高

8.执行SQLStatement(步骤四)

答:通过接口方法将SQL语句传输至?认的数据库连接,返回结果可能是一个数据表,可以通过java.sql.ResultSet访问。

1)Statement的接口方法:

a.executeQuery(sqlString):执行给定的SQL声明,返回一个结果集(ResultSet)对象;

b.executeUpdate(sqlString):执行给定的SQL声明,可以是INSERT、UPDATE或DELETE声明,也可以是SQLDDL声明;

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或者INTint通常是个32位整数

SMALLINTshort通常是个16位整数

NUMBER(m,n)DECIMAL(m,n)Java.sql.Numeric合计位数是m的定点十进制数,小数后面有n位数

DEC(m,n)Java.sql.Numeric合计位数是m的定点十进制数,小数后面有n位数

FLOAT(n)double运算精度为n位二进制数的浮点数

REALfloat通常是32位浮点数

DOUBLEdouble通常是64位浮点数

CHARACTER(n)或CHAR(n)String长度为n的固定长度字符串

VARCHAR(n)String***长度为n的可变长度字符串

BOOLEANboolean布尔值

DATEJava.sql.Date根据具体设备而实现的日历日期

TIMEJava.sql.Time根据具体设备而实现的时戳

TIMESTAMPJava.sql.Timestamp根据具体设备而实现的当日日期和时间

BLOBJava.sql.Blob二进制大型对象

CLOBJava.sql.Clob字符大型对象

ARRAYJava.sql.Array

JDBC基础

1.元数据

答:关于数据的信息,例如类型或者容量。通过JDBCAPI可以访问:

1)数据库元数据;

a.使用connection.getMetadata方法返回DataMetaData引用

b.能够使用isReadOnly此类方法获取信息

2)结果集元数据;

a.使用ResultSet.getMetadata方法返回ResultSetMetaData引用

b.能够使用getColumnCount此类方法获取信息

2.事务处理

答:1)一系列的动作作为一个不可分的操作;

2)JDBCAPI中使用事务处理步骤:

a.用false作为参数调用setAutoCommit方法;

b.执行一或多个关于数据库的操作;

c.调用commit方法完成改变;

d.恢复上次提交后的改变,调用rollback方法.

  1. try  
  2. {  
  3. con.setAutoCommit(false);  
  4. Statementstm=con.createStatement();  
  5. stm.executeUpdate("insertintostudent(name,age,gpa)values('gzhu',30,4.8)");  
  6. stm.commit();  
  7. }  
  8. catch(SQLExceptione)  
  9. {  
  10. try  
  11. {  
  12. con.rollback();  
  13. }  
  14. catch(Exceptione)  
  15. {  
  16. }  

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.JDBC2.0应用程序编程接口增强功能

答:1)ResultSet增强:

a.可以回卷;

b.可以修改;

设置示例:Statementstm=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);

2)Statement增强了批量修改能力(batchupdates);

3)更高级的数据类型(例:Struct)。

5.JDBC2.0标准扩展

答:1)JNDI(JavaNamingandDirectoryInterface):解决离散状态下Object的查找;

2)连接池:在内存中保存了一个数据库连接,不需要注册驱动器,提高性能的重要方法。

JDBC基础学习笔记总结与讨论就到这里

【编辑推荐】

  1. 使用JDBC的五个精华功能
  2. Tomcat5+MySQL JDBC连接池配置
  3. 在Weblogic中实现JDBC的功能
  4. 详解JDBC与Hibernate区别
  5. JDBC连接MySQL数据库关键四步
  6. 详解JDBC驱动的四种类型
责任编辑:彭凡 来源: 51CTO博客
相关推荐

2009-08-13 18:21:52

C#学习笔记

2009-06-17 14:21:39

core java

2013-03-28 09:45:34

iOS学习笔记总结整理

2009-07-15 17:11:31

JDBC的概念

2009-07-22 16:07:11

Java JDBC编程

2010-06-13 13:44:07

UML学习笔记

2010-01-14 17:02:10

学习C++

2010-06-30 18:09:22

UML建模

2010-05-04 13:59:09

负载均衡技术

2024-03-19 08:54:20

Rust语言内存管理应用程序开发

2010-07-09 14:05:56

UML建模

2010-01-26 17:53:05

C++入门学习

2009-09-08 16:11:20

CCNA(640-80

2009-12-17 16:15:00

CCNP学习笔记

2011-08-04 14:58:37

Objective-C Cocoa NSString

2009-11-25 16:35:25

VS 2003系统

2010-06-02 09:06:26

SVN学习

2010-06-17 16:42:04

UML

2015-07-07 10:43:59

Swift语法基础

2009-08-13 16:13:03

C#基础知识
点赞
收藏

51CTO技术栈公众号