版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、电子课件JAVA语言程序设计java11第11章JDBC技术11.1关系型数据库的驱动与连接11.2使用SQL指令操作数据库本章目录11.1关系型数据库的驱动与连接一、JDBC技术概述JDBC(Java DateBase Connectivity)是一种可用于执行SQL语句指令的Java API,它由一些Java语言写的类和接口组成,主要存放在java.sql包中。常用的包括DriverManager类,Connection接口,Statement接口,ResultSetMetaDada接口,ResultSet接口等,在J2EE中又对JDBC的有关功能进行了增强和扩展,新的内容放在了javax
2、.sql包中。Java语言程序使用JDBC与数据库进行通讯,其主要的功能是实现与各种数据库的连接,实现了API与特定驱动器的分离。JDBC提供了一种标准的应用程序设计接口,使开发人员可以用纯Java语言编写完整的数据库应用程序。在Java语言的程序中不必考虑数据库的类型而采用统一的程序代码完成数据库的管理,可以很方便地将SQL语句指令传送给几乎任何一种数据库。通过使用JDBC,大大地扩展了Java语言处理数据库的能力。现在随着Java语言为越来越多的大公司所支持,大多数流行的商业化的数据库管理系统都已经包含有JDBC驱动器,而且由于Java语言的开放式策略,市场上还有第三方的产品可供选择,使用
3、JDBC也越来越方便。JDBC可以完成以下三个任务:同一个数据库建立连接;向数据库发送SQL语句;处理数据库返回的结果。JDBC是一种底层的API,它使用语句级的方式直接调用SQL命令。可以利用JDBC与ODBC之间的桥接器方便地实现对Microsoft ODBC的访问,具有平台无关性、安全性、完整性、鲁棒性等特点。二、JDBC的驱动管理器JDBC中的驱动管理器就是DriverManager类,是JDBC的管理层,它在数据库和用户驱动器之间工作,在数据库和合适的驱动器之间建立连接。真正进行数据库连接的是Driver类中的connect()方法。编程人员除了可以调用DriverManager类的
4、getConnection()方法之外,还可以调用该类的getDriver(),getDrivers(),registerDriver()等方法进一步完成程序的功能。DriverManager类维护着一系列驱动器程序Driver类,这些类是通过实现Java类库中的Driver接口而得到的,这些类通过调用DriverManager类的getConnection()方法来注册自己,然后在DriverManager类被调用时载入,而且在数据库驱动器载入时被自动调动。调用DriverManager类的getConnection()方法是在数据库和驱动器之间建立连接的标准方法,具体格式为String u
5、rl = jdbc:odbc:wombat;Connection con = DriverManager.getConnection( url, oboy, 12Java );三、JDBC驱动程序的类型JDBC驱动程序规范把JDBC驱动程序分为4种类型,分别应用于某种针对DBMS(DataBase Management System)的特定需求: JDBC-ODBC驱动程序 Java/本地代码驱动程序 Java协议被称为“第四类数据库协议”的纯Java实现的JDBC驱动程序11.2使用SQL指令操作数据库利用JDBC查询数据库的处理过程分下面5个步骤:载入JDBC驱动程序,连接到DBMS,创建
6、并执行语句,处理DBMS返回的数据,终止与DBMS的连接。一、载入JDBC驱动程序通过调用Class.forName( com.mysql.jdbc.Driver );方法,实现载入JDBC驱动程序。所选定的驱动程序的名称二、连接到DBMSgetConnection()方法有三个重载体:getConnection( String url )getConnection( String url, Properties info )getConnection( String url, String user, String password )作用是请求DBMS访问数据库,如果访问请求被允许将返回一
7、个Connection对象,否则该方法将抛出一个SQLException异常。执行连接的具体形式为:String url = jdbc:mysql:/localhost:3306/graduation_design;Connection connect = DriverManager.getConnection( url );协议子协议子名称连接池技术:通常一个需要与数据库交互的用户必须打开一个连接,在处理过程中如果一直保持连接的话有可能会占用数据库的连接从而影响其他用户,如果在每次访问数据库之后都关闭连接而在需要时又打开连接又会消耗系统时间并且降低性能。JDBC 2.1版引入了连接池技术。连
8、接池就是一个数据库连接的集合,在使用的时候只需打开一次并载入内存即可被重复使用,既不必每次使用都重新连接DBMS也不消耗系统时间。三、创建并执行语句在成功地连接了数据库之后,就可以操作和查询数据库了。这个过程是通过Statement对象发送SQL语句返回查询结果实现的。JDBC的查询发送机制提供了三种对象来实现查询语句的发送执行,它们是Statement对象、PreparedStatement对象和CallableStatement对象。它们都可以作为执行SQL语句的容器对象,分别用于发送不同类型的SQL语句:Statement对象用于执行简单的SQL语句,也就是没有参数的SQL语句;Prep
9、aredStatement对象用于执行需要重复执行的预编译过的SQL语句;CallableStatement对象用于执行一个数据库的存储过程。创建Statement对象可以通过Connection类方法createStatement()来实现:Statement stmt = connect.createStatement();Statement提供了三种不同的方法可以执行SQL语句:executeQuery( String sql );/执行给定的SQL查询语句,返回ResultSet对象。executeUpdate( String sql );/执行给定的SQL更新语句,返回INSERT、
10、UPDATE或DELETE语句的行计数,或者返回0表示不返回任何内容。execute( String sql ); /执行给定的SQL查询语句,该语句可能返回多个结果。查询完成之后要将Statement对象关闭,形式为:stmt.close();创建PreparedStatement对象可以通过Connection类方法PreparedStatement来实现:String query = SELECT * FROM namelist WHERE x=?;PreparedStatement pstmt = connect.PreparedStatement( query );使用Prepare
11、dStatement对象是为了处理预编译的SQL语句的对象。使用PreparedStatement对象查询的方式与使用Statement对象查询的方式相似。创建CallableStatement对象可以通过Connection类方法prepareCall来实现:String query = call getTestData(?,?);CallableStatement cstmt = connect.prepareCall( query );使用CallableStatement对象用来从J2EE对象中调用一个存储过程。四、处理DBMS返回的数据JDBC接收查询结果是通过ResultSet对象
12、来实现的,称为结果集。一个ResultSet对象包含了执行某个SQL查询语句后满足条件的所有的行,ResultSet接口中提供了对这些行的访问方法,用户可以通过一组get方法来访问。可滚动结果集和可更新结果集。在处理查询结果集的时候,经常要用到元数据。所谓元数据是描述数据的数据信息,包括描述数据库的元数据和描述结果集的元数据。描述数据库的元数据通过接口DatabaseMetaData定义,可以经由调用Connection接口的getMetaData()方法获取DatabaseMetaData对象,并利用接口DatabaseMetaData中的方法得到数据库中的数据的主要信息。描述结果集的元数据通过接口ResultSetMetaData定义,可以经由调用ResultSet接口的getMetaData()方法获取ResultSetMetaData对象,利用接口ResultSetMetaData中的方法得到结果集中的数据的信息,有助于程序员处理数据。五、终止与DBMS的连接当完成对数据库的访问之后,通过调用Connection接口的close()方法关闭Connection对象,终止与数据库的连接,如果在关闭连接时遇到问题,该方法将会抛出一个异常。关闭与数据库的连接时将自动关闭
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度服装设计委托创作合同
- 感恩课程课件教学课件
- 2024年度互联网金融与投资合同
- 2024年城市供水供电管网改造工程合同
- 2024年度电子商务平台服务外包合同
- 2024年度智能家居产品购销合同
- 2024年屋产交易合同:个人卖家与买家之间的协议
- 2024年度光伏发电项目建设与运营合同
- 大学民法课件教学课件
- 公司中秋节员工的慰问信(18篇)
- 高考数学小题狂练:每题都附有详细解析
- 浮动码头施工方案
- Poka-Yoke防错技术(完整版)
- 保安交接班记录表(2)
- 神明—EZflame火焰检测系统
- 个人简历求职简历课件.ppt
- 2018年江苏高考满分作文:在母语的屋檐下
- 新青岛版五四制2021-2022四年级科学上册实验指导
- 小学四年级音乐课程标准
- 双向细目表和单元测试卷及组卷说明
- 离子色谱法测定空气中二氧化硫
评论
0/150
提交评论