JDBC数据库连接技术.ppt

上传人:M****1 文档编号:576662537 上传时间:2024-08-20 格式:PPT 页数:26 大小:371.84KB
返回 下载 相关 举报
JDBC数据库连接技术.ppt_第1页
第1页 / 共26页
JDBC数据库连接技术.ppt_第2页
第2页 / 共26页
JDBC数据库连接技术.ppt_第3页
第3页 / 共26页
JDBC数据库连接技术.ppt_第4页
第4页 / 共26页
JDBC数据库连接技术.ppt_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《JDBC数据库连接技术.ppt》由会员分享,可在线阅读,更多相关《JDBC数据库连接技术.ppt(26页珍藏版)》请在金锄头文库上搜索。

1、JDBC数据库连接技术主要内容nJDBC概述n面向程序开发人员的JDBCAPIn面向底层的JDBCDriverAPInJDBCDriver介绍n创建数据库的连接n数据库连接及应用举例JDBC概述nJDBC出现以前,通过Java访问数据库的唯一方法是利用JavaI/O访问服务器端的CGI程序,通过CGI程序访问和操作数据库,每一次访问都会由web服务器启动一个新的CGI进程与数据库建立连接,所以效率低、速度慢且容易出错。nJDBC的出现扩充了java的应用范围,通过使用JDBC,应用程序可以很方便的将SQL语句传送给几乎任何一种数据库。n简单地说,JDBC能完成:q与数据库建立连接q向数据库发送

2、SQL语句q处理数据库返回的结果JDBC概述nJava通过JDBC访问数据库的关系:nJDBC包含两部分API:面向应用程序开发人员的JDBCAPI和面向底层的JDBCDriverAPI面向程序开发人员的JDBC APIn被描述成为聚集抽象的接口,通过这些接口应用程序可以实现对数据库的各种操作。最重要的接口包括:qJava.sql.DriverManager处理驱动的加载并且对产生新的数据库连接提供支持qJava.sql.Connection数据库连接对象qJava.sql.StatementSQL语句对象nPreparedStatement执行预编译的SQL语句nCallableStatem

3、ent调用数据库内嵌过程qJava.sql.ResultSet查询结果集对象面向底层的JDBC Driver APIn数据库厂商开发数据库底层驱动程序要使用的,一般情况下程序员用不上这些类库。n数据库厂商会提供多种不同类型的驱动程序连接数据库,一般可分为4种类型:Type1、Type2、Type3、Type4n清楚了解4种类型的驱动程序的运作方式,对于程序员是很重要的,因为实际开发过程中经常会使用各种不同的数据库、而且在不同的时机必须使用不同类型的的驱动程序来连接数据库。n招聘题:你常用的是JDBC驱动的那一种?与其他JDBC驱动相比较,有什么优点?JDBC Driver介绍nType1JDB

4、C-ODBCBridgeplusODBCDriverq必须事先创建数据库的ODBC连接,然后再利用JDBC-ODBCBridge(DBC桥接器)驱动程序,通过ODBC连接数据库,此种方式通常用在实验、测试阶段,或者暂时没有其他驱动可用的情况下。q优点优点:简单q缺点缺点:要设置ODBC连接;项目大、用户多时维护ODBC连接很麻烦;性能低、大量效率耗在了JDBC和ODBC之间的数据传递与转换。JDBC Driver介绍nType2Native-APIpartly-JavaDriverq运作方式与Type1很相似。访问数据库时,利用数据库提供的特别的函数库来完成(Oracle、DB2、Sybase

5、等都有提供),java利用本地函数的机制与这些函数库沟通。此种方式适用于于用户机器上存在这些函数库。q优点优点:效率高。由于java是利用本地函数机制与数据库提供的函数库沟通,而这些函数库通常是数据库厂商精心优化了的,所以效率很高!q缺点缺点:用户必须安装数据库的函数库JDBC Driver介绍nType3PureJavaDriverforDatabaseMiddleWaren这种类型的驱动就是要解决上面两种驱动所存在的问题。首先这种驱动程序必须有一个中间层服务器(middlewareserver),当用户要与数据库沟通时,会利用JDBC与中间层服务器连接,而中间层服务器会将JDBC的调用转换

6、成数据库的协议并调用数据库,最后将数据库的返回值再转换成JDBC的格式返回给用户。如此一来用户就不需要设置ODBC数据源或者安装数据库连接的函数库了。事实上,中间层服务器还是利用ODBC或者函数库来与数据库进行沟通的。n优点:用户端不用做任何设置;直接连接的是中间层服务器,所以驱动程序SIZE较小;非常适用于Applet中要连接数据库的应用。n缺点:要花钱买中间层服务器,且需要考虑它的性能及稳定性JDBC Driver介绍nType4Direct-to-DatabasePureJavaDriverq算是真正的JDBC驱动程序,因为这种驱动程序完全由Java完成,包括与数据库打交道的各种网络、沟

7、通协议,几乎所有的数据库厂商都提供了这种类型的驱动程序,甚至有公司在专门制作这种驱动程序。q优点:性能好,不必事先安装任何函数库或作任何设置,是选择驱动程序时非常好的选择。q缺点:不同的数据库需要不同的驱动。JDBC Driver介绍n4种类型的驱动比较表n总结:q基本上Type1与Type2属于同一种类型,而Type3与Type4则都是数据pureJava的JDBC驱动程序q一般情况下都使用Type4,Type1用于测试或暂时找不到其他驱动的情况下JDBC Driver介绍n思考:怎样知道自己现在到底用的是那种类型的驱动呢?q如果须设置用户端,则为Type1或Type2;反之若不需考虑用户端

8、,则为Type3或者Type4。q在Type1与Type2中,若需设置的是ODBC数据源,则为Type1,否则为Type2q在Type3与Type4中,若存在中间层服务器,则为Type3,否则为Type4创建数据库的连接n环境设置步骤:q找到JDBC驱动程序,通常以一个或者多个Jar包的形式提供q判断驱动程序的Type,根据Type作一些使用前的额外设置,如:nType1:安装ODBC驱动程序、设置ODBC数据源nType2:安装DBClient的函数库、设置数据库的连接nType3:安装设置MiddleWare服务器nType4:无q将驱动程序jar包设置到classpath中创建数据库的连

9、接n一个基本的JDBC应用的开发都包含以下步骤:q引入相应的包q加载JDBC驱动程序q创建连接对象q创建SQL语句对象q执行数据库操作q如果有查询结果集返回,处理结果集q释放相关资源创建数据库的连接n引入相应的包importjava.sql.*;importjavax.sql.*;(高级应用)n加载JDBC驱动程序Class.forName(“JDBC驱动类名);每个Driver类在得到加载的时候,一般都会自动创建一个它本身的实例,并通过DriverManager类的registerDriver方法来自动注册该实例;程序员也可以显示的调用newInstance()方法强制实施这一过程,即:Cl

10、ass.forName(“JDBC驱动类名”).newInstance();对于”JDBC驱动类名”,Type4各有不同,Type1均为”sun.jdbc.odbc.JdbcOdbcDriver”创建数据库的连接n创建连接对象Connectioncon=DriverManager.getConnection(“数据库url”,“userName”,“password”);DriverManager类会尝试找到与传递进来的url字符串所代表的数据库进行连接的驱动程序(DriverManager类存有已注册的Driver类的清单),然后创建一个连接对象并返回。p关于”数据库url”JDBCURL标

11、准部分由三部分组成,jdbc:jdbc固定标识驱动名或数据库连接机制,如mysql一种标识数据库的方法,如/localhost/mydbMySQL中mydb数据库的url完整写法:jdbc:mysql:/localhost/mydb创建数据库的连接n创建SQL语句对象Statementstmt=con.createStatement();SQL语句对象用于向数据库传送SQL语句,另外还有PreparedStatement和CallableStatement这两种语句对象。n用SQL语句对象执行数据库操作q查询:ResultSetrs=statement.executeQuery(Strings

12、ql);q更新(删除):intupdatedrowcount=statement.executeUpdate(Stringsql);创建数据库的连接n如果有查询结果集返回,处理结果集q调用SQL语句对象的方法对数据库进行查询操作后,将返回一个ResultSet对象,此对象是由统一形式的列组织的数据行组成。ResultSet对象一次只能看到一个数据行,使用next()方法走到下一数据行。获得一行数据后,ResultSet对象可以使用getXxx()方法获得字段值,将位置索引(第一列为1,第二列为2等)或字段名传递给getXxx(.)方法的参数即可qResultSet类的若干方法(查阅JDK文档)

13、nBooleannext()nStringgetString(intcolumnIndex)nIntgetInt(intcolumnIndex)nfloatgetFloat(intcolumnIndex)nn释放相关资源qrs.close();stmt.close();con.close();ResultSet对象会在生成它的SQL语句对象被关闭或重新执行时自动关闭使用Type4驱动连接数据库举例nSQLServer2000q驱动程序jar文件:msbase.jar,mssqlserver.jar,msutil.jarq驱动类名:com.microsoft.jdbc.sqlserver.SQL

14、ServerDriverq数据库URL,如yinhe数据库:jdbc:microsoft:sqlserver:/localhost:1433;DatabaseName=yinhe1433是SQLServer数据库连接服务的默认端口,可用telnet先测试q举例:检索出一个数据表里的所有内容,并打印结果到命令提示符终端。使用Type4驱动连接数据库举例nMySQLqMySQL没有提供数据库操作的GUI,数据库、表的创建需要使用DDLq驱动程序jar文件:mm.mysql-2.0.4-bin.jarq驱动类名:org.gjt.mm.mysql.Driverq数据库URL,如yinhe数据库:jdb

15、c:mysql:/localhost/yinhe复习与实践n使用Type4驱动连接MySQL数据库q安装MySQL数据库q使用DDL创建数据库(如yinhe)、数据表(employees)q使用Java连接数据库,并检索出一个数据表中的全部内容打印到屏幕终端n复习内容:qJDBC数据库应用的一般流程,Type4驱动的使用使用Type4驱动连接其它常见数据库nOracleClass.forName(“oracle.jdbc.driver.OracleDriver”);Connectioncon=DriverManager.getConnection(“jdbc:oracle:thin:local

16、host:1521:databaseName”,“user”,“password”);nPostgreSQLClass.forName(“org.postgresql.Driver”);Connectioncon=DriverManager.getConnection(“jdbc:postgresql:/localhost/databaseName”,“user”,“password”);n使用Type1驱动连接数据库举例n要点:q首先要设置并测试ODBC数据源qType1驱动名均为:sun.jdbc.odbc.JdbcOdbcDriver此驱动位于rt.jar包中,所以classpath不需

17、要专门设置q数据库URL:jdbc:odbc:数据源名字如yinhe数据库,对应的ODBC数据源是milkway,则为:jdbc:odbc:milkwayn举例:q使用Type1驱动连接SQLServer2000数据库复习与实践n使用Type1驱动连接Access数据库qNotes:与使用Type1驱动连接SQLServer2000的步骤完全一样n复习内容qJDBC数据库应用的一般流程,Type1驱动的使用n补充小技巧q不用手动注册ODBC数据源直接连接Access数据库:只需将数据库得连接url写成“jdbc:odbc:Driver=MicrosoftAccessDriver(*.mdb);

18、DBQ=c:test.mdb“的形式即可,对于其他的小型数据库如foxpro,甚至excel也可以。以数据库的方式查询Excel表格n方法,通过jdbc-odbc桥接器(即Type1驱动)n步骤:(1).建立ODBC数据源,指向要连接的Excel文件(2).Excel文件中是没有像数据库中那样的数据表的,需要手工指定,数据表的概念在Excel文件中对应就是自定义名称:在Excel表格中选中一块要操作的区域-“插入”-“名称”-“定义”,取个名字,这个名字就是在程序中要操作的数据表名。(3).以后的步骤完全同其他情况下Type1驱动的使用。作业:n在自己机器上安装SQLServer2000数据库n编写一个类用于连接数据库,其中数据库URL,用户名和密码可以通过构造函数传递n使用上面的类连接数据库,并用Statement执行一个查询语句,打印出结果

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号