Java入门(13) More Java!要想成为JDBC方面的专家,或想更深入地研究它们,请下载并刻苦研读它们。 自测练习 1) Java语言提供的访问、操作数据库的统一接口称为__________。 a.ODBC b.JDBC c.DBAP 2) Java语言中提供的这个数据库接口包含在__________包中。 a.java.odbc b.java.jdbc c.java.sql d.java.dbap 3) Java数据库程序通常是在网络上运行的,那么JDBC类一般位于_________。 a.客户端 b.服务器端 c.两端都有其中一部分 4) JDBC可以通过____________来使用数据库的ODBC驱动程序。 a.jdbcodbc.dll b.ODBC模拟器 c.没有条件,可以直接使用 5) ODBC与JDBC有一个共同的设计基础,它是______________。 a.SQL标准 b.CLI 6)__________发布时间更早。 a.JDBC b.ODBC c.DBAP 7)使用ODBC访问数据库,数据库只能够在主机上。__________ a.对 b.不对 8)在ODBC模型中,最终是通过________来操作数据库的。 a.ODBC接口 b.驱动程序管理器 c.数据库的ODBC驱动程序 9)而在JDBC模型中,在应用程序中,我们是通过_________来使用数据库的。 a.JDBC-ODBC桥接器 b.JDBC接口 c.ODBC驱动程序 练习答案 1)b 当然是JDBC,Java DataBase Connectivity。另外,并不存在一种名为DBAP的数据库接口API。 2)c 首先不可能会是java.odbc,也不会是java.dbap,也许你最想选择的可能会是java.jdbc,可是Java类的命名者却使用了数据库圣经的名字(SQL)命名了。 3)a 通常是在客户端。 4)a 使用JDBC-ODBC的转换器,这个转换器的文件名就是jdbc-odbc.dll。 5)b 这两个数据库接口使用了同一个设计基础,X/Open SQL Call Level Interface,它简称为CLI。 6)b ODBC比JDBC早很长一段时间。 7)b 当然不对,ODBC也是允许访问远程服务器上的数据库的。 8)c 是通过真正能够了解数据库结构的,由数据库厂商提供的,专门的ODBC驱动程序来完成的。 9)b 对于应用程序而言,它只需直接调用提供的接口就可以了,无须去关心具体的数据库实现。 13.2 用JDBC连接数据库 传授新知 所有的JDBC类和方法都包含在java.sql包中: 类别 类 驱动程序 java.sql.Driver
连接 java.sql.Connection 语句 java.sql.Statement
结果集 java.sql.ResultSet 错误/警告 java.sql..SQLException
元数据 java.sql.DatabaseMetaData
日期/时间 java.sql.Date
其它 java.sql.Types
表13-1 JDBC类一览表 在使用JDBC时,每一个驱动程序要被加载之前,都要使用DriverManager进行注册。当需要打开一个连接时,DriverManager根据JDBC的URL选择相应的驱动程序。 同样的,JDBC也体现了Java这一网络语言的特点,它也是使用URL进行识别一个数据库的。它的语法格式是: jdbc:<子协议>:<与DBMS/Protocol相关的子名字> JDBC的URL分三个部分组成: 1)指示部分:jdbc。请大家回忆一下,一个常见的WEB页面的URL是以什么开头的?对,http://,这个指示部分用来说明这个URL是什么类别的。 2)子协议部分,这个部分用来指出JDBC的子协议,如odbc; 3)子名字:数据源的名字,如果数据库是在网络上的,那么就用URL//hostname:port//来表示。 例如:jdbc:odbc: 使用JDBC的整个流程如下图所示:
图13-5 JDBC调用流程图 正如上图所示,使用JDBC访问数据库需要经过以下几个步骤: 1) 首先,程序调用getConnection()方法,获得一个Connection对象; 2) 然后程序创建一个Statement对象并准备一个SQL语句;这个SQL语句可以是: a. 被立即执行的语句:Statement对象; b.被编译的语句:PreparedStatement对象; c.存储过程的调用:CallableStatement对象。 3) 接着我们就可以执行这个语句(如executeQuery( )、execute( ))等,将得到一个存储结果的ResultSet对象。 注意: 也有一些语句是完成一些事务工作,如executeUpdate(),更新。它们将不会返回ResultSet对象,因为它们并没有结果。 4) 最后,我们就可以使用类似next()等方法对返回的ResultSet对象进行相应的处理。
上一篇:Java入门(11) 让程序更动人 下一篇:JSP 技术白皮书 更多相关文章
|
推荐文章
精彩文章
|