JDBC数据库访问技术课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《JDBC数据库访问技术课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JDBC 数据库 访问 技术 课件
- 资源描述:
-
1、第6章 JDBC数据库访问技术 本章主要内容 MS SQL Server 2000的安装 JDBC驱动程序的类型及安装方法 常用的JDBC API接口和类 使用JDBC进行增、删、改、查的基本方法 预编译SQL语句和存储过程的调用 JDBC事务处理 连接池与数据源 数据库与Excel报表的动态生成 6.1 MS SQL Server 2000的安装 6.1.1 MS SQL Server 2000概述概述SQL Server 2000 是 Microsoft 公司于 2000 年 10 月推出的一个关系型数据库管理系统,有以下几个版本:SQL Server 2000 企业版(Enterpris
2、e Edition)SQL Server 2000 标准版(Standard Edition)SQL Server 2000 个人版(Personal Edition)SQL Server 2000开发人员版(Developer Edition)6.1.2 SQL Server 2000个人版的安装 在安装前,建议以Windows的administrator管理员身份登录操作系统,用其它Windows帐户登录可能因权限不足而导致无法连接数据库。在光驱中放入SQL Server 2000个人版的安装光盘,光盘一般会自动运行,如图6-1示。单击界面上的第一项【安装 SQL Server 2000组
3、件】。图6-1 SQL Server 2000个人版安装启动界面 图6-2 安装组件界面 在图6-2的安装组件界面中,单击选中第一项【安装数据库服务器】。在图6-3的欢迎对话框中,单击【下一步】按钮。在图6-4的计算机名对话框中,选择【本地计算机】,再单击【下一步】按钮。在图6-5的安装选择对话框中,选择【创建新的SQL Server实例或安装客户端工具】,再单击【下一步】按钮。图6-3 欢迎对话框 图6-4计算机名对话框 在图6-6的用户信息对话框中,姓名、公司取默认值,单击【下一步】按钮。图6-5 安装选择对话框 图6-6用户信息对话框 在图6-7的软件许可协议对话框中,单击【是】按钮。在
4、图6-8的安装定义对话框中,选择【服务器和客户端工具】,单击【下一步】按钮。图6-7 软件许可证协议 图6-8安装定义对话框 在图6-9的实例名对话框中,取【默认】项,单击【下一步】按钮。在图6-10的安装类型对话框中,取【典型】项,单击【下一步】按钮。图6-9 实例名对话框 图6-10 安装类型对话框 在图6-11的服务器帐户对话框中,取【对每个服务使用同一帐户。自动启动SQL Server服务】项,服务设置中取【使用本地系统帐户】项,单击【下一步】按钮。图6-11 服务帐户对话框 在图6-12的身份验证模式对话框中,选择【混合模式(Windows身份验证和SQL Server身份验证)】项
5、,添加sa登录密码选择【空密码(不推荐)】项,单击【下一步】按钮。最后出现复制文件对话框,单击【下一步】按钮开始复制文件,直到安装完成。图6-12 身份验证模式 安装安装SQL Server 2000的的补丁补丁在Windows XP 以上的操作系统中安装SQL Server 2000以后,数据库系统还不能正常工作,需要下载并安装SQL Server 2000 sp4以上的补丁。补丁可在微软公司的官方网站http:/ Server 2000数据数据库服务器库服务器使用Windows XP的菜单:【开始】【程序】【Microsoft SQL Server】【服务管理器】,在图6-13的服务管理器
6、窗口中,单击【开始/继续】按钮,并选择【当启动OS时自动启动服务】,最后关闭窗口。图6-13 服务管理器窗口 4、样例数据库样例数据库SQL Server 2000自带两个供学习SQL语句用的样例数据库,一个是Northwind数据库,另一个pubs数据库。Northwind数据库模仿罗斯文贸易公司的业务模型,罗斯文公司专门经营世界各地风味食品的进出口业务。pubs数据库用于模拟一个图书出版社的业务模型。6.2 JDBC概述概述 6.2.1 ODBC概述 ODBC是Microsoft公司推出的开放式数据库接口。应用系统通过SQL结构化查询语言访问数据管理系统(DBMS)。ODBC接口对不同的D
7、BMS提供半透明的存取,这样开发人员便能在虚拟数据库上展开工作,通过加载的驱动程序将逻辑结构映射到具体的DBMS。6.2.2 JDBC概述概述 JDBC(Java Database Connectivity)是Java环境中访问SQL数据库的一组API。它包括一些用Java语言编写的类和接口,能更方便地向任何关系型数据库发送SQL命令。JDBC提供给程序员的编程接口由两部分组成:一是面向应用程序的编程接口JDBC API,它是供应用程序员用;二是支持底层开发的驱动程序接口JDBC Driver API,它是供商业数据库厂商或专门的驱动程序生产厂商开发JDBC驱动程序用。当前流行的大多数数据库系
8、统都推出了自己的JDBC驱动程序。6.2.3 JDBC驱动程序的类型驱动程序的类型 JDBC驱动程序大致分为四种类型:1、JDBC Type-1 类型1的JDBC驱动程序是将JDBC API映射到另一种数据库的API上。JDBC-ODBC桥属于类型1的JDBC驱动程序。2、JDBC Type-2 这类JDBC驱动程序有一部分是用Java语言编写,另外一部分是用本地代码编写,一般也称之为JDBC Native API。3、JDBC Type-3 类型3的JDBC驱动程序也叫JDBC Network Bridge驱动程序,驱动程序是使用Java语言编写,具有跨平台特性。4、JDBC Type-4
9、类型4的JDBC驱动程序也是用纯Java语言编写,也具有跨平台特性,一般称之为Pure Java JDBC Driver。6.2.4 JDBC Type-4驱动程序的安装方法 将JDBC Type-4驱动程序sqljdbc.jar文件复制到C:tomcatcommonlib文件夹中,重启Tomcat后,JSP/Servlet中就可以使用此驱动程序。在Tomcat下安装其它数据库的JDBC Type-4驱动程序的基本方法也是将*.jar驱动程序文件复制到C:tomcatcommonlib文件夹中。6.3 JDBC API中关键的类和接口 6.3.1 java.sql包包 JDBC API的核心部
10、分在java.sql包中,这个包提供使用 Java 编程语言访问并处理存储在数据源中数据的 API。6.3.2 javax.sql包包javax.sql包提供了通过数据源访问数据库的API,这个包是java.sql 包的补充,它从 1.4 版本开始包含在 JDK 中,支持连接池和数据源技术,支持分布式事务处理。6.3.3 常用的常用的JDBC API类和接口类和接口1、java.sql.Driver接口接口这个接口的实现类是某种数据库的一个驱这个接口的实现类是某种数据库的一个驱动程序类,用于初始化驱动程序。动程序类,用于初始化驱动程序。本书所使用的本书所使用的MS SQL Server 200
11、0的的JDBC Type-4驱动程序的类名为:驱动程序的类名为:com.microsoft.sqlserver.jdbc.SQLServerDriver 要加载此驱动程序,代码类似于:要加载此驱动程序,代码类似于:Class.forName(com.microsoft.sqlserver.jdbc.SQLServerDriver);Type-1类型的类型的JDBC-ODBC的驱动程序的驱动程序名为:名为:sun.jdbc.odbc.JdbcOdbcDriverjava.sql.DriverManager类类DriverManager类的主要作用是管理注册类的主要作用是管理注册到到DriverM
12、anager中的中的JDBC驱动程序,驱动程序,并根据需要使用并根据需要使用JDBC驱动程序建立与数驱动程序建立与数据库服务器的网络连接。类中常用的方法据库服务器的网络连接。类中常用的方法有:有:(1)public static Connection getConnection(String url,String user,String password)throws SQLException 例如,取得SQL Server 2000连接的代码为:String url=jdbc:sqlserver:/127.0.0.1:1433;databaseName=pubs;String user=sa
13、;String pw=null;Connection con=DriverManager.getConnection(url,user,pw);如果要用Type-1类型的JDBC-ODBC驱动程序连接SQL Server 2000的pubs数据库,首先要在Windows的控制面板中建立一个名为“mypubs”的ODBC数据源,获得连接代码如下:Connection con=DriverManager.getConnection(jdbc:odbc:mypubs,);(2)public static Connection getConnection(String url)throws SQLEx
14、ception 对于SQL Server 2000,url连接串可写为:String url=jdbc:sqlserver:/127.0.0.1:1433;databaseName=pubs;user=sa;password=;Connection con=DriverManager.getConnection(url);3、java.sql.Connection接口接口一个一个Connection对象表示一个数据库连接,接口中对象表示一个数据库连接,接口中常用的方法有:常用的方法有:(1)Statement createStatement(int resultSetType,int resu
15、ltSetConcurrency)throws SQLException作用作用:创建一个创建一个 Statement 对象发送对象发送SQL 语句给语句给数据库服务器,两个形参指定数据库服务器,两个形参指定ResultSet 对象的对象的类型和并发性,含义如下:类型和并发性,含义如下:第一个形参第一个形参指明结果集游标的类型,通过游标来指明结果集游标的类型,通过游标来读取结果集中的记录。读取结果集中的记录。SQL Server 支持四种游支持四种游标类型:静态游标、动态游标、只进游标和键集标类型:静态游标、动态游标、只进游标和键集驱动游标。驱动游标。第二个形参指明结果集的并发性,并发控制是指
16、多名用户同时更新行时,用于保护数据库完整性的技术。不正确的并发可能导致脏读、幻读和不可重复读等问题。ResultSet中并发控制常用的取值主要有两个:一个是ResultSet.CONCUR_READ_ONLY,它是只读的,不允许通过游标进行更新,并且不对组成结果集的行锁定。第二个取值是ResultSet.CONCUR_UPDATABLE,它是乐观读写,不锁定行。(2)Statement createStatement()throws SQLException 作用:创建一个Statement对象来发送SQL语句给数据库服务器,默认参数:结果集的类型是ResultSet.TYPE_FORWARD
17、_ONLY,结果集的并发模式是ResultSet.CONCUR_READ_ONLY。(3)PreparedStatement prepareStatement(String sql,int resultSetType,int resultSetConcurrency,int resultSetHoldability)throws SQLException 作用:给一条带参数的SQL语句生成PreparedStatement对象(SQL语句预编译对象),中的第一个形参是带“?”号参数的预编译SQL语句,例如:select*from titles where price?(4)PreparedSt
18、atement prepareStatement(String sql)throws SQLException 作用:为一条带参数的SQL语句生成PreparedStatement对象(SQL语句预编译对象),第一个形参是带“?”号参数的SQL语句,默认参数:结果集的类型是ResultSet.TYPE_FORWARD_ONLY,结果集的并发模式是ResultSet.CONCUR_READ_ONLY。(5)CallableStatement prepareCall(String sql,int resultSetType,int resultSetConcurrency,int resultSe
19、tHoldability)throws SQLException 作用:为一条带有“?”号参数的存储过程调用命令创建预编译语句对象,第一个参数为待编译的SQL语句,第24个形参的含义同上。(6)CallableStatement prepareCall(String sql)throws SQLException 作用:为一条带参数的存储过程调用语句生成预编译对象,第一个形参是带“?”号参数的SQL语句,默认参数:结果集的类型是ResultSet.TYPE_FORWARD_ONLY,结果集的并发模式是ResultSet.CONCUR_READ_ONLY。(7)void setAutoCommi
20、t(boolean autoCommit)throws SQLException 作用:定义连接的JDBC事务提交模式,形参取值为true,表示连接处于自动事务提交模式,则连接将接收到的一条SQL语句当作一个独立的事务提交。形参取值为false,则表示连接处于JDBC手动事务提交模式,通过调用commit()手动提交事务或调用rollba(8)void commit()throws SQLException 作用:提交事务,这个方法只有在手动事务提交模式下才有效。(9)Savepoint setSavepoint()throws SQLException 作用:在当前语句处创建一个回滚点,并返
21、回一个Savepoit对象表示此回滚点。(10)void rollback(Savepoint savepoint)throws SQLException 作用:回滚事务到指定的回滚点处。(11)void rollback()throws SQLException 作用:回滚所有的事务。(12)void close()throws SQLException 作用:释放数据库连接。4、java.sql.Statement接口接口通过Statement对象向数据库服务器发送SQL语句,接口中常用的方法有:(1)public ResultSet executeQuery(String sql)thr
22、ows SQLException这个方法将一条select查询语句发送给数据库服务器,查询结果封装在ResultSet对象中,形参是以字符串表示的SQL语句。这个方法不执行update、delete、insert等更新操作语句。如:要从pubs数据库的titles表中查询出单价大于5美元的图书书名、单价,代码片段为:(2)public int executeUpdate(String sql)throws SQLException 这个方法主要执行delete、update和insert语句,也可以执行一些建库、建表语句,返回值是整数,表示语句影响的记录数。例如,给pubs数据库titles表
23、中单价在4美元以下的图书提价2美元,代码片段为:(3)public void setMaxRows(int max)throws SQLException 对于一条select语句的查询结果,此方法定义ResultSet对象最多存储max条记录,超过部分被丢弃。例如:String sql=select title,price from titles where price+4;st.setMaxRows(3);ResultSet rs=st.executeQuery(sql);(4)public void addBatch(String sql)throws SQLException 将多条i
24、nsert或update语句添加到Statement对象中,形成一个批处理,最后调用executeBatch()执行这个批处理。(5)public int executeBatch()throws SQLException 执行批处理中的各条insert、update语句,返回一个整型数组,一个数组分量表示一条SQL语句的影响行数。例如:5、java.sql.ResultSet接口接口用用Connection对象生成对象生成Statement对象时,对象时,可定义可定义ResultSet对象中的指针能够前后对象中的指针能够前后移动,并且也可以定义移动,并且也可以定义ResultSet对象中对象
25、中的数据可以被更改。的数据可以被更改。ResultSet中和记录指针移动相关的方法有:(1)public int getRow()throws SQLException 获得当前记录的记录号。(2)public boolean next()throws SQLException 将ResultSet对象中的记录指针移到下一条记录处,如果成功移动返回true,移动失败返回false。一般利用此方法来构造一个遍历结果集的循环(3)boolean previous()throws SQLException 将ResultSet对象中的记录指针移到当前记录的上一条记录处,如果成功移动返回true,移动
展开阅读全文