已阅读5页,还剩22页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2019/6/6,JDBC数据库访问技术,2019/6/6,2,什么是JDBC,JDBC(Java DataBase Connectivity)是Java与数据库的接口规范 JDBC定义了一个支持标准SQL功能的通用底层的应用程序编程接口(API) 定义了若干Java中的类,表示数据库连接、SQL指令、结果集、数据库元数据等,2019/6/6,3,JDBC特性,独立于特定数据库 对硬件平台、操作系统异构性的支持 JDBC驱动程序管理器是内置的,驱动程序本身也可通过Web浏览器自动下载,无须安装、配置 在不同数据库功能模块层次上提供统一的用户界面,可以实现不同的数据库连接.,2019/6/6,4,JDBC 操作步骤,加载驱动程序(向系统注册所需要的JDBC驱动程序). 建立到指定数据库的连接. 提交数据库查询 获取查询结果,2019/6/6,5,连接(Connection),Connection 对象代表与数据库的连接 连接过程包括所执行的 SQL 语句和在该连接上所返回的结果,2019/6/6,6,打开连接,与数据库建立连接的标准方法是调用 DriverManager.getConnection 方法 例子 如下:,2019/6/6,7,打开连接例子,private String url = “jdbc:microsoft:sqlserver:/localhost:1433;DataBaseName=mydb“; private String username = “sa“; private String password = “sa“; public void testJDBC() try Class.forName(“com.microsoft.jdbc.sqlserver.SQLServerDriver“).newInstance();/第一中加载驱动的方法 / DriverManager.registerDriver(new com.microsoft.jdbc.sqlserver.SQLServerDriver();/第二种为注册驱动的方法 conn = DriverManager.getConnection(url, username, password); System.out.println(“数据库连接成功“); catch (Exception e) e.printStackTrace(); ,2019/6/6,8,JDBC URL,JDBC URL 提供了一种标识数据库的方法,可以使相应的驱动程序能识别该数据库并与之建立连接 JDBC URL 应允许驱动程序编程员将一切所需的信息编入其中,而无须要求用户去做任何系统管理工作 JDBC URL 应允许某种程度的间接性。也就是说,JDBC URL 可指向逻辑主机或数据库名,而这种逻辑主机或数据库名将由网络命名系统动态地转换为实际的名称,2019/6/6,9,JDBC URL的标准语法,JDBC URL 的标准语法如下所示。它由三部分组成,各部分间用冒号分隔: jdbc: jdbc 协议。JDBC URL 中的协议总是 jdbc 驱动程序名或数据库连接机制的名称 一种标识数据库的方法,2019/6/6,10,JDBC URL 举例,Jdbc:oracle:thin:127.0.0.1:1521:edudb Jdbc:microsoft:sqlserver:/localhost:1433 Jdbc:microsoft:sqlserver:/localhost:1433;DataBaseName=mydb,2019/6/6,11,发送 SQL 语句,JDBC 提供了三个类,用于向数据库发送 SQL 语句 Statement PreparedStatement CallableStatement,2019/6/6,12,对象Statement,由Connection的方法 createStatement 所创建 Statement 对象用于发送简单的 SQL 语句,2019/6/6,13,对象PreparedStatement,由Connection的方法 prepareStatement 所创建 PreparedStatement 对象用于发送带有一个或多个输入参数的 SQL 语句 PreparedStatement 的实例扩展了 Statement ,因此它们都包括了Statement 的方法 PreparedStatement 对象有可能比Statement 对象的效率更高,因为它已被预编译过并存放在那以供将来使用,2019/6/6,14,对象CallableStatement,由方法 prepareCall 所创建。CallableStatement 对象用于执行 SQL 储存程序 一组可通过名称来调用的SQL 语句,2019/6/6,15,事务,事务由一个或多个这样的语句组成:这些语句已被执行、完成并被提交或还原 当调用方法 commit 或 rollback 时,当前事务即告就结束,另一个事务随即开始 方法 commit 使 SQL 语句对数据库所做的任何更改成为永久性的,它还将释放事务持有的全部锁。而方法 rollback 将弃去那些更改,2019/6/6,16,事务隔离级别,必须有某种途径来管理两个事务同时对一个数据库进行操作时可能发生的冲突 五个隔离级别 TRANSACTION_NONE TRANSACTION_READ_UNCOMMITTED TRANSACTION_READ_COMMITTED TRANSACTION_REPEATABLE_READ TRANSACTION_SERIALIZABLE 使用Connection.setTransactionIsolation() 设置你想要的事物级别,2019/6/6,17,DriverManager,DriverManager 类是 JDBC 的管理层,作用于用户和驱动程序之间 跟踪可用的驱动程序,并在数据库和相应驱动程序之间建立连接,2019/6/6,18,跟踪可用驱动程序,DriverManager 类包含一列 Driver 类,它们已通过调用方法DriverManager.registerDriver对自己进行了注册 所有 Driver 类都包含一个静态部分,它创建该类的实例,然后在加载该实例时 DriverManager 类进行注册 加载 Driver 类,然后自动在 DriverManager 中注册的方式 Class.forName(“acme.db.Driver“);,2019/6/6,19,建立连接,加载 Driver 类并在 DriverManager 类中注册后,它们即可用来与数据库建立连接 当调用 DriverManager.getConnection 方法发出连接请求时,DriverManager 将检查每个驱动程序,查看它是否可以建立连接 DriverManager 将使用它所找到的第一个可以成功连接到给定 URL 的驱动程序 Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver“); /加载驱动程序 String url = “jdbc:odbc:fred“; DriverManager.getConnection(url, “userID“, “passwd“);,2019/6/6,20,Statement语句,创建 Statement 对象 Statement stmt = con.createStatement(); 使用 Statement 对象执行语句 executeQuery 用于产生单个结果集的语句 executeUpdate 用于执行 INSERT、UPDATE 或 DELETE 语句以及 SQL DDL(数据定义语言)语句 语句完成 连接处于自动提交模式 连接处于非自动提交模式 关闭 Statement 对象 作为一种好的编程风格,应在不需要 Statement 对象时显式地关闭它们,2019/6/6,21,结果设置ResultSet,ResultSet 包含符合 SQL 语句中条件的所有行,并且它通过一套 get 方法提供了对这些行中数据的访问 例子 java.sql.Statement stmt = conn.createStatement(); ResultSet r = stmt.executeQuery(“SELECT a, b, c FROM Table1“); while (r.next() int i = r.getInt(“a“); String s = r.getString(“b“); float f = r.getFloat(“c“); ,2019/6/6,22,为什么使用连接池,可能发生的情况:每一个页面请求导致一次数据库访问 连接数据库不仅要开销一定的通讯和内存资源,还必须完成用户验证、安全上下文配置这类任务 成百上千个用户 如果某个基于数据库的Web应用只需建立一次初始连接,不同页面请求能够共享同一连接,就能获得显著的性能改善,2019/6/6,23,未使用连接池的情况,2019/6/6,24,使用了连接池的情况,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年下半年内蒙古检察系统招聘用制书记员1428人过渡易考易错模拟试题(共500题)试卷后附参考答案
- 2025年下半年内蒙古呼和浩特市本级事业单位招聘168人笔试易考易错模拟试题(共500题)试卷后附参考答案
- 2025年下半年内蒙古包头市直和旗县区事业单位招考考试(562名)易考易错模拟试题(共500题)试卷后附参考答案
- 2025年下半年内蒙古人民政府机要运行服务中心事业单位招聘1人准考易考易错模拟试题(共500题)试卷后附参考答案
- 2025年下半年兰州西固区招考安监专干易考易错模拟试题(共500题)试卷后附参考答案
- 儿童膳食模式与肥胖关联-洞察与解读
- 2025年的委托销售合同范本
- 2025租赁合同范本简介
- 2025版简易购销合同模板
- 2025四川省买卖赊账合同范本
- 工程到货验收方案(3篇)
- 2021-2025年高考化学真题知识点分类汇编之工艺流程(解答大题)(二)
- 瑜伽线上教学课件模板图片
- 2025年班组长考试试题目及答案
- 初中信息技术基础操作教学
- 浙江省J12共同体联盟校2024-2025学年八年级上学期语文期中试卷(含答案)
- 离子风机管理办法
- GB/T 30807-2025建筑用绝热制品浸泡法测定长期吸水性
- 2025年医学高级职称-卫生毒理(医学高级)历年参考题库含答案解析(5卷单选100题)
- 香水制作培训课件
- 2025年中国双轴高低速搅拌机市场调查研究报告
评论
0/150
提交评论