版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第10讲Java数据库访问深刻理解JDBC的概念及JDBCAPI主要内容熟练掌握JDBC应用程序开发流程熟练掌握应用JDBC实现数据库记录的插入、删除和修改操作熟练掌握应用JDBC查询数据库记录学习目的与要求JDBC ——基础JDBC(JavaDatabaseConnectivity)是一个独立于特定数据库管理系统的、通用的SQL数据库存取和操作的公共接口(一组API),定义了用来访问数据库的标准Java类库,使用这个类库可以以一种标准的方法、方便地访问数据库资源(在java.sql类包中)。JDBC为访问不同的数据库提供了一种统一的途径,象ODBC(OpenDatabaseConnectivity)一样,JDBC对开发者屏蔽了一些细节问题。JDBC的目标是使应用程序开发人员使用JDBC可以连接任何提供了JDBC驱动程序的数据库系统,这样就使得程序员无需对特定的数据库系统的特点有过多的了解,从而大大简化和加快了开发过程。JDBC ——基础与ODBC相类似,JDBC接口(API)也包括两个层次:
面向应用的API:JavaAPI,抽象接口,供应用程序开发人员使用(连接数据库,执行SQL语句,获得结果)。
面向数据库的API:JavaDriverAPI,供开发商开发数据库驱动程序用。与ODBC相比,JDBC没有了定制的“数据源”的概念,而是直接在应用程序中加载驱动程序并连接特定的数据库。DriverManager(java.sql.DriverManager)装载驱动程序,管理应用程序与驱动程序之间的连接。Driver(由驱动程序开发商提供)将应用程序的API请求转换为特定的数据库请求。Connection(java.sql.Connection)
将应用程序连接到特定的数据库Statement(java.sql.Statement)在一个给定的连接中,用于执行一个静态的数据库SQL语句。
ResultSet(java.sql.ResultSet)SQL语句中心完后,返回的数据结果集(包括行、列)。Metadata(java.sql.DatabaseMetadata;java.sql.ResultSetMetadata)关于查询结果集、数据库和驱动程序的元数据信息。JDBC ——基础:主要概念JDBC ——基础:基本工作步骤ImportthenecessaryclassesLoadtheJDBCdriverIdentifythedatabasesourceAllocatea“Connection”object(create)Allocatea“Statement”object(create)Executeaqueryusingthe“Statement”objectRetrievedatafromthereturned“ResultSet”objectClosethe“ResultSet”objectClosethe“Statement”objectClosethe“Connection”objectJDBC ——基础:基本工作步骤1.LoadtheJDBCdriverclass:
Class.forName(“driverName”);2.Openadatabaseconnection:
DriverManager.getConnection (“jdbc:xxx:datasource”);3.IssueSQLstatements:
stmt=con.createStatement(); stmt.executeQuery(“Select*frommyTable”);4.Processresultset:
while(rs.next()){ name=rs.getString(“name”); amount=rs.getInt(“amt”);}ConnectionStatementResultSetDriverDriverManagerDatabaseJDBC支持四种类型的驱动程序:JDBC-ODBCBridge,plusODBCdriver(Type1)SimplestJDBCmethods->TranslateJDBCmethodstoODBCmethods->ODBCtonativemethods->NativemethodsAPINative-API,partlyJavadriver(Type2)JDBCmethods->MapJDBCmethodstonativemethods(callstovendorlibrary)->NativemethodsAPI(vendorlibrary)JDBC-net,pureJavadriver(Type3)JDBCmethods->TranslatetoNativeAPImethodsthroughTCP/IPnetwork->NativeAPImethodsNative-protocol,pureJavadriver(Type4)Javamethods->NativemethodsinJavaJDBC ——驱动程序JDBC ——驱动程序JDBC-ODBCBridge,plusODBCdriver(Type1)由Sun的Java2JDK提供(sun.jdbc.odbc.JdbcOdbcDriver)通过ODBC驱动程序来获得对数据库的JDBC访问必须先安装ODBC驱动程序和配置ODBC数据源。仅当特定的数据库系统没有相应的JDBC驱动程序时使用。ApplicationSpaceJavaApplicationJDBC–ODBCBridgeDatabaseSQLCommandResultSetODBCDriverProprietaryProtocolJDBC ——驱动程序JDBC-net,pureJavadriver(Type3)将JDBC命令转换为与数据库系统无关的网络协议,并发送给一个中间件服务器。中间件服务器再将数据库系统无关的网络协议转换为特定数据库系统的协议,并发送给数据库系统。从数据库系统获得的结果先发送给中间件服务器,并进而返回给应用程序。ApplicationSpaceJavaApplicationType3JDBCDriverDatabaseSQLCommandResultSetMiddlewareSpaceProprietaryProtocolJDBCDriverNative-protocol,pureJavadriver(Type4)纯Java的驱动程序,直接与特定的数据库系统通信。直接将JDBC命令转换为数据库系统的本地协议。优点:没有中间的转换或者是中间件。通常用于提高数据库访问的性能。ApplicationSpaceJavaApplicationType4JDBCDriverDatabaseSQLCommand
UsingProprietary
ProtocolResultSet
UsingProprietary
ProtocolJDBC ——驱动程序JDBC ——编程任何一个JDBC应用程序,都需要以下四个步骤:
加载JDBC驱动程序建立与数据库的连接进行数据库操作关闭相关连接利用DriverManager类的静态方法getConnection()来获得与特定数据库的连接实例(Connection实例)。Connectionconn=DriverManager.getConnection(url);Connectionconn=DriverManager.getConnection(url,user,pass);
这三个参数都是String类型的,使用不同的驱动程序与不同的数据库建立连接时,url的内容是不同的,但其格式是一致的,都包括三个部分:jdbc:driverType:dataSource
对于JDBC-ODBCBridge,driverType为odbc,dataSource则为ODBC数据源:“jdbc:odbc:myDSN”。对于其他类型的驱动程序,根据数据库系统的不同driverType和dataSource有不同的格式和内容。Step2建立与数据库的连接Step3进行数据库操作每执行一条SQL语句,都需要利用Connetcion实例的createStatement()方法来创建一个Statement实例。Statement的常用方法包括:执行SQLINSERT,UPDATE或DELETE等语句int
executeUpdate(String
sql)执行SQLSELECT语句ResultSet
executeQuery(String
sql)执行一个可能返回多个结果的SQL语句boolean
execute(Stringsql)(与其他方法结合起来来获得结果)Statement
中还有其他的方法来执行SQL语句。Step4:进行数据库操作通过ResultSet来获得查询结果:ResultSet实例最初定位在结果集的第一行(记录)ResultSet提供了一些在结果集中定位的方法,如next()等。ResultSet提供了一些方法来获得当前行中的不同字段的值,getXXX()。ResultSet中还提供了有关方法,来修改结果集,并提交到数据库中去。Step4:进行数据库操作通过ResultSetMetadata来获得查询结果的元数据信息:ResultSet提供了一个方法getMetadata()来获得结果集的元数据信息,它返回的是一个ResultSetMetadata实例。通过ResultSetMetadata实例,就可以获得结果集中字段的详细信息,如字段总数,每个字段的名称、类型等。getColumnCount()//#ofcolumnsintherowgetColumnName(i)//returnscolumnnamegetColumnType(i)//returnscolumndatatypegetColumnLabel(i)//suggestedlabelforacolumnwhenprintgetTableName()//returnsthenameofthetable确定了字段类型,获取字段数据时,就可以明确如何使用ResultSet中的getXXX()方法了。通过DatabaseMetadata来获得数据库的元数据信息:Connection提供了一个方法getMetadata()来获得数据库的元数据信息,它返回的是一个DatabaseMetadata实例。通过DatabaseMetadata实例,就可以获得数据库的各种信息,如数据库厂商信息、版本信息、数据表数目、每个数据表名称等。getDatabaseProductName()getDatabaseProductVersion()getDriverName()getTables()Step4:进行数据库操作JDBC ——示例【例1】使用Access数据库创建student数据库及表。创建数据库创建Access数据库文件,数据库文件名为student.mdb。创建表输入数据配置ODBC数据源
1)打
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年茶叶收购与仓储管理合同2篇
- 水电安装工程2025年度合同书协议2篇
- 二零二五版快递物流服务质量监控与评估协议合同2篇
- 二零二五年电子供应链采购合同3篇
- 二零二五年度校园巴士运营管理合同范本3篇
- 二零二五年高端餐饮会所租赁承包合同范本3篇
- 2025年危险品运输及应急处理合同3篇
- 二零二五版物流仓储与新能源利用合同3篇
- 小学教师事业单位聘用合同(2篇)
- 二零二五年度绿色交通PPP特许经营权转让合同3篇
- 【大学课件】微型计算机系统
- (主城一诊)重庆市2025年高2025届高三学业质量调研抽测 (第一次)英语试卷(含答案)
- 2025关于标准房屋装修合同的范本
- 中国建材集团有限公司招聘笔试冲刺题2025
- 2024年马克思主义基本原理知识竞赛试题70题(附答案)
- 2024年湖北省中考物理真题含解析
- 荔枝病虫害防治技术规程
- 资金借贷还款协议
- 《实验性研究》课件
- 中国革命战争的战略问题(全文)
- 《阻燃材料与技术》课件全套 颜龙 第1讲 绪论 -第11讲 阻燃性能测试方法及分析技术
评论
0/150
提交评论