版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第12章JDBC数据库编程《Java面向对象程序设计案例教程(第2版)》目录/Contents12.112.212.3JDBC概述JDBC访问数据库编写JDBC代码思政要点/Point数据安全
在数据库编程中保护数据安全和个人隐私的重要性,遵守相关法律法规。团队合作
提升团队合作和沟通能力,有效协作解决数据库设计和实现中的问题。持续学习
关注数据库技术的最新发展,保持持续学习的态度,适应技术进步。社会责任利用数据库技术解决社会问题,为社会公共利益作出贡献。JDBC概述12.1
Java数据库连接(JavaDatabaseConnectivity,JDBC)是一种用于执行SQL语句的JavaAPI,它可以为多种关系数据库提供统一访问编程由一组用Java语言编写的类与接口组成。JDBC提供了一种基准,据此可以构建更高级的工具与接口,使数据库开发人员能够编写数据库应用程序。12.1.1JDBC的概念
早期Sun公司的程序员想编写一套可以连接所有数据库的API,但是当他们刚刚开始编写时就发现这是不可能完成的任务,因为各个厂商的数据库服务器差异太大了。后来Sun公司开始与数据库厂商讨论,最终得出的方案-由Sun公司提供一套访问数据库的规范(即一组接口),并提供连接数据库的协议标准,各个数据库厂商会遵循Sun公司的规范提供一套访问自己公司的数据库服务器的API。Sun公司提供的规范命名为JDBC,而各个厂商提供遵循了JDBC规范且可以访问自己数据库的API被称之为驱动,如图12-1所示。JDBC是接口,而JDBC驱动才是接口的实现,没有驱动就无法完成数据库连接。每个数据库厂商都有自己的驱动,用来连接自己公司的数据库。当然,也有第三方公司专门为某一数据库提供的驱动,这样的驱动往往不是开源免费的。12.1.2JDBC的原理Driver接口是所有JDBC驱动程序必须实现的接口,该接口专门提供给数据库厂商使用。需要注意的是,在编写JDBC程序时,必须要把所使用的数据库驱动程序或类库加载到项目的classpath中(这里指MySQI驱动JAR包)。12.1.3JDBC常用API1.Driver接口2..DriverManager接口DriverManager接口用于加载JDBC驱动程序、创建与数据库的连接。在DriverManager接口中,定义了两个比较重要的静态方法,如表12-1所示。方法名称功能描述staticvoidregisterDriver(Driverdriver)用于向DriverManager注册给定的JDBC驱动程序 staticConnectiongetConnection(Stringurl,Stringuser,Stringpwd)用于建立和数据库的连接,并返回表示连接的Connection对象Statement接口用于执行静态的SQL语句,并返回一个结果对象。Statement接口对象可以通过Connection实例的createStatement()方法获得,该对象会把静态的SQL语句发送到数据库中编译执行,然后返回数据库的处理结果。Statement接口提供了3个常用的执行SQL语句的方法,如表12-3所示。12.1.3JDBC常用API4.Statement接口方法名称功能描述booleanexecute(Stringsql)用于执行各种SQL语句。该方法返回一个boolean类型的值,如果为true,表示所执行的SQL语句有查询结果,可以通过Statement的getResultSet()方法获得查询结果 intexecuteUpdate(Stringsql) 用于执行SQL中的insert、update和delete语句。该方法返回一一个int)类型的值,表示数据库中受该SQL语句影响的记录条数 ResultSetexecuteQuery(Stringsql)用于执行SQL中的select语句。该方法返回一个表示查询结果的ResultSet对象Connection接口用于处理与特定数据库的连接,Connection对象是表示数据库连接的对象,只有获得该连接对象,才能访问并操作数据库。Connection接口的常用方法如表12-2所示。12.1.3JDBC常用API5.PreparedStatement接口方法名称功能描述StatementcreateStatement()用于创建一个Statement对象将SQL语句发送到数据库PreparedStatementprepareStatement(Stringsql) 用于创建一个PreparedStatement对象将参数化的SQL语句发送到数据库 CallableStatementprepareCall(Stringsql)用于创建一个CallableStatement对象来调用数据库存储过程ResuliSet接口用于保存JDBC执行查询时返回的结果集,该结果集封装在一个逻辑表格中。在ResuhSet接口内部有一个指向表格数据行的游标(或指针),ResultSet对象初始化时,游标在表格的第一行之前,用next()方法可以使游标下移一行。如果下一行没有数据,则返回false。在应用程序中经常使用next(方法作为while循环的条件来迭代ResultSet结果集。ResultSet接口的常用方法如表12-5所示。12.1.3JDBC常用API6.ResuliSet接口方法名称功能描述StringgetString(intcolumnIndex) 用于获取指定字段的String类型的值,参数columnIndex代表字段的索引 StringgetString(StringcolumnName) 用于获取指定字段的String类型的值,参数columnName代表字段的名称 intgetlnt(intcolumnIndex) 用于获取指定字段的int类型的值,参数columnindex代表字段的索引 intgetInt(StringcolumnName) 用于获取指定字段的int类型的值,参数columnName代表字段的名称 booleannext()将游标从当前位置下移一行 JDBC访问数据库12.2在连接数据库之前,要加载数据库的驱动程序到JVM(Java虚拟机)。加载操作可以通过java.lang.Class类的静态方法forName(StringclassName)或DriverManager类的静态方法registerDriver(Driverdriver)实现,具体示例如下:DriverManager.registerDriver(Driverdriver);或Class.forName("DriverName");在实际开发中,常用第2种方式注册数据库驱动程序,DriverName表示数据库的驱动类。以MySQL数据库为例,MySQL驱动类在6.0.2版本之前为com.mysqljdbc.Driver,而在6.0.2版本之后为com.mysql.ej.jdbc.Driver,要根据自己数据库版本选择相应的驱动类。12.2.1实现JDBC程序1.加载并注册数据库驱动获取数据库连接的具体方式如下:Connectionconn-DriverManager.getConnection(Stringurl,stringuser,Stringpwd);从上述代码可以看出,getConnection()方法有3个参数,分别表示连接数据库的地址、登录数据库的用户名和密码。以MySQL数据库为例,MySQL数据库地址的格式如下:jdbc:mysql://hostname:port/databasename在上面的代码中,jdbc:mysql:是固定的写法;mysql是指MySQL数据库;hostname是指主机的名称(如果数据库在本机中,hostname可以为localhost或127.0.0.1;如果要连接的数据库在其他计算机上,hostname为所要连接计算机的IP);port是指连接数据库的端口号(MySQL端口号默认为3306);databasename是指MySQL中相应数据库的名称。12.2.1实现JDBC程序2.通过DriverManager获取数据库连接Connection创建Statement对象的方法有以下3个。
(1)createStatement():创建基本的Statement对象。
(2)prepareStatement():创建PreparedStatement对象。
(3)prepareCall():创建CallableStatement对象。以创建基本的Statement对象为例,创建方式如下:Statementstmt=conn.createStatement();12.2.1实现JDBC程序3.通过Connection对象获取Statement对象
所有的Statement都有以下3种执行SQL语句的方法。(1)execute():可以执行任何SQL语句。(2)executeQuery():通常执行查询语句,执行后返回代表结果集的ResultSet对象。(3)exccuteUpdate():主要用于执行DML和DDL语句。执行DML语句,如INSERT、UPDATE或DELET时,返回受SQL语句影响的行数;执行DDL语句返回0。以executeQuery()方法为例,executeQuery()方法调用形式如下:ResultSetrs=stmt.executeQuery(sql);//执行SQL语句,获取结果集ResultSet12.2.1实现JDBC程序4.使用Statement执行SQL语句如果执行的SQL语句是查询语句,执行结果将返回一个ResultSet对象,该对象保存了SQL语句查询的结果。程序可以通过操作该ResultSet对象取出查询结果。12.2.1实现JDBC程序5.操作ResultSet结果集6.关闭连接,释放资源每次操作数据库结束后都要关闭数据库连接,释放资源,关闭顺序和声明顺序相反。需要关闭的资源包括ResultSet、Statement和Connection等。至此,JDBC程序的大致实现步骤已经讲解完了。编写JDBC代码12.312.3.1将数据库驱动开发包引入到项目工程中编写代码之前,我们首先需要将数据库厂商提供的驱动程序jar文件加入到开发工具的构建路径中,以便程序运行时能够准确找到驱动并使用。常见的构建路径添加方法有3种。1.绝对路径引入(1)在项目上单击鼠标右键,选择Buildpath扩展,选择最后一项ConfigureBuildPath,在Libraries选项卡中,选择右侧第二项AddExternalJARs,在当前页面下,找到驱动程序jar文件,如图12-2,12-3所示。(2)完成上述操作后,确定退出。引入完毕的效果如图12-4所示。12.3.1将数据库驱动开发包引入到项目工程中图12-2构建路径
图12-3浏览jar文件图12-4
引入完毕效果12.3.1将数据库驱动开发包引入到项目工程中2.使用类库添加(1)在项目上单击鼠标右键,选择Buildpath扩展,选择最后一项ConfigureBuildPath,在Libraries选项卡中,选择右侧第四项AddLibrary,选择UserLibrary,点击Next。在下一界面中,选择UserLibraries。如图12-5,12-6所示。
图12-5项目类库
图12-6新建用户库12.3.1将数据库驱动开发包引入到项目工程中2.使用类库添加(2)新建用户Library,输入名称,确定后,选择AddJARs,选择jar文件,逐层确定后退出。如图12-7,12-8所示。
图12-7新建用户库
图12-8新建用户库12.3.1将数据库驱动开发包引入到项目工程中3.本项目内相对路径引入(1)项目上单击鼠标右键,选择新建->Folder,输入lib作为文件夹的名字。将jar文件复制粘贴进入lib文件夹,如图12-9所示。在jar文件上右键单击,选择buildpath->addtobuildpath,如图12-10所示。12.3.2准备测试数据在此例中,MySQL数据库连接的用户名是
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025吉林大学白求恩医学部机关面向校内招聘正科级干部1人备考考试试题及答案解析
- 2025重庆大学医院劳务派遣医技人员招聘4人备考考试试题及答案解析
- 2023检查实施方案十篇
- 网商家的合同范本
- 网格员聘请协议书
- 耗材供销合同范本
- 职工不坐班协议书
- 联合中标合同范本
- 聘用dj合同范本
- 聘用护士合同范本
- 2025年齐齐哈尔市总工会工会社会工作者招聘39人考试笔试模拟试题及答案解析
- 慈溪白骨案课件
- 2024南江辅警考试真题及答案
- 小儿肾挫伤的护理措施
- 2025中原证券股份有限公司招聘55人笔试考试参考试题及答案解析
- 医疗不良事件上报与绩效联动策略
- 学堂在线 雨课堂 学堂云 科研伦理与学术规范 章节测试答案
- 骨相美学理论课件
- 2025年空气采样操作流程试题有答案
- 2025年度数字化城市管理信息系统安全自查报告
- 营销沙盘实训报告
评论
0/150
提交评论