数据库访问技术 .ppt
《数据库访问技术 .ppt》由会员分享,可在线阅读,更多相关《数据库访问技术 .ppt(120页珍藏版)》请在三一办公上搜索。
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 企业版(Enterprise Edition
2、)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组件】。,图6-1
3、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的软件许可协议对话框中,单击【是】按钮。在图6-8的安
4、装定义对话框中,选择【服务器和客户端工具】,单击【下一步】按钮。,图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以上的补丁。补丁可在微软公司的官方网站details.aspx?familyid=8E2DFC8D-C20E-4446-99A9-B7F0213F8BC5&displaylang=zh-cn中下载。补丁程序是一个压缩包,默认自解压至“C:SQL
6、2KSP4”文件夹下,运行c:SQL2KSP4setup.bat批处理程序安装补丁。,启动SQL Server 2000数据库服务器使用Windows XP的菜单:【开始】【程序】【Microsoft SQL Server】【服务管理器】,在图6-13的服务管理器窗口中,单击【开始/继续】按钮,并选择【当启动OS时自动启动服务】,最后关闭窗口。,图6-13 服务管理器窗口,4、样例数据库SQL Server 2000自带两个供学习SQL语句用的样例数据库,一个是Northwind数据库,另一个pubs数据库。Northwind数据库模仿罗斯文贸易公司的业务模型,罗斯文公司专门经营世界各地风味食
7、品的进出口业务。pubs数据库用于模拟一个图书出版社的业务模型。,6.2 JDBC概述,6.2.1 ODBC概述 ODBC是Microsoft公司推出的开放式数据库接口。应用系统通过SQL结构化查询语言访问数据管理系统(DBMS)。ODBC接口对不同的DBMS提供半透明的存取,这样开发人员便能在虚拟数据库上展开工作,通过加载的驱动程序将逻辑结构映射到具体的DBMS。,6.2.2 JDBC概述JDBC(Java Database Connectivity)是Java环境中访问SQL数据库的一组API。它包括一些用Java语言编写的类和接口,能更方便地向任何关系型数据库发送SQL命令。JDBC提供
8、给程序员的编程接口由两部分组成:一是面向应用程序的编程接口JDBC API,它是供应用程序员用;二是支持底层开发的驱动程序接口JDBC Driver API,它是供商业数据库厂商或专门的驱动程序生产厂商开发JDBC驱动程序用。当前流行的大多数数据库系统都推出了自己的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语言编写,另外一部分是用
9、本地代码编写,一般也称之为JDBC Native API。,3、JDBC Type-3 类型3的JDBC驱动程序也叫JDBC Network Bridge驱动程序,驱动程序是使用Java语言编写,具有跨平台特性。4、JDBC Type-4 类型4的JDBC驱动程序也是用纯Java语言编写,也具有跨平台特性,一般称之为Pure Java JDBC Driver。,6.2.4 JDBC Type-4驱动程序的安装方法,将JDBC Type-4驱动程序sqljdbc.jar文件复制到C:tomcatcommonlib文件夹中,重启Tomcat后,JSP/Servlet中就可以使用此驱动程序。在Tom
10、cat下安装其它数据库的JDBC Type-4驱动程序的基本方法也是将*.jar驱动程序文件复制到C:tomcatcommonlib文件夹中。,6.3 JDBC API中关键的类和接口,6.3.1 java.sql包JDBC API的核心部分在java.sql包中,这个包提供使用 Java 编程语言访问并处理存储在数据源中数据的 API。6.3.2 javax.sql包javax.sql包提供了通过数据源访问数据库的API,这个包是java.sql 包的补充,它从 1.4 版本开始包含在 JDK 中,支持连接池和数据源技术,支持分布式事务处理。,6.3.3 常用的JDBC API类和接口1、接
11、口这个接口的实现类是某种数据库的一个驱动程序类,用于初始化驱动程序。本书所使用的MS SQL Server 2000的JDBC Type-4驱动程序的类名为:,要加载此驱动程序,代码类似于:);Type-1类型的JDBC-ODBC的驱动程序名为:,类DriverManager类的主要作用是管理注册到DriverManager中的JDBC驱动程序,并根据需要使用JDBC驱动程序建立与数据库服务器的网络连接。类中常用的方法有:(1)public static Connection getConnection(String url,String user,String password)throws
12、 SQLException,例如,取得SQL Server 2000连接的代码为:String url=jdbc:sqlserver:/127.0.0.1:1433;databaseName=pubs;String user=sa;String pw=null;Connection con=DriverManager.getConnection(url,user,pw);,如果要用Type-1类型的JDBC-ODBC驱动程序连接SQL Server 2000的pubs数据库,首先要在Windows的控制面板中建立一个名为“mypubs”的ODBC数据源,获得连接代码如下:Connection
13、con=DriverManager.getConnection(jdbc:odbc:mypubs,);,(2)public static Connection getConnection(String url)throws SQLException对于SQL Server 2000,url连接串可写为:String url=jdbc:sqlserver:/127.0.0.1:1433;databaseName=pubs;user=sa;password=;Connection con=DriverManager.getConnection(url);,3、接口一个Connection对象表示一
14、个数据库连接,接口中常用的方法有:(1)Statement createStatement(int resultSetType,int resultSetConcurrency)throws SQLException作用:创建一个 Statement 对象发送SQL 语句给数据库服务器,两个形参指定ResultSet 对象的类型和并发性,含义如下:第一个形参指明结果集游标的类型,通过游标来读取结果集中的记录。SQL Server 支持四种游标类型:静态游标、动态游标、只进游标和键集驱动游标。,第二个形参指明结果集的并发性,并发控制是指多名用户同时更新行时,用于保护数据库完整性的技术。不正确的并
15、发可能导致脏读、幻读和不可重复读等问题。ResultSet中并发控制常用的取值主要有两个:一个是ResultSet.CONCUR_READ_ONLY,它是只读的,不允许通过游标进行更新,并且不对组成结果集的行锁定。第二个取值是ResultSet.CONCUR_UPDATABLE,它是乐观读写,不锁定行。,(2)Statement createStatement()throws SQLException作用:创建一个Statement对象来发送SQL语句给数据库服务器,默认参数:结果集的类型是ResultSet.TYPE_FORWARD_ONLY,结果集的并发模式是ResultSet.CONCU
16、R_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)PreparedStatement prepareStatement(Stri
17、ng 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 resultSetHoldability)throws SQLExcept
18、ion作用:为一条带有“?”号参数的存储过程调用命令创建预编译语句对象,第一个参数为待编译的SQL语句,第24个形参的含义同上。,(6)CallableStatement prepareCall(String sql)throws SQLException作用:为一条带参数的存储过程调用语句生成预编译对象,第一个形参是带“?”号参数的SQL语句,默认参数:结果集的类型是ResultSet.TYPE_FORWARD_ONLY,结果集的并发模式是ResultSet.CONCUR_READ_ONLY。,(7)void setAutoCommit(boolean autoCommit)throws S
19、QLException作用:定义连接的JDBC事务提交模式,形参取值为true,表示连接处于自动事务提交模式,则连接将接收到的一条SQL语句当作一个独立的事务提交。形参取值为false,则表示连接处于JDBC手动事务提交模式,通过调用commit()手动提交事务或调用rollba,(8)void commit()throws SQLException作用:提交事务,这个方法只有在手动事务提交模式下才有效。(9)Savepoint setSavepoint()throws SQLException作用:在当前语句处创建一个回滚点,并返回一个Savepoit对象表示此回滚点。(10)void ro
20、llback(Savepoint savepoint)throws SQLException作用:回滚事务到指定的回滚点处。,(11)void rollback()throws SQLException作用:回滚所有的事务。(12)void close()throws SQLException作用:释放数据库连接。,4、接口通过Statement对象向数据库服务器发送SQL语句,接口中常用的方法有:(1)public ResultSet executeQuery(String sql)throws SQLException这个方法将一条select查询语句发送给数据库服务器,查询结果封装在Re
21、sultSet对象中,形参是以字符串表示的SQL语句。这个方法不执行update、delete、insert等更新操作语句。,如:要从pubs数据库的titles表中查询出单价大于5美元的图书书名、单价,代码片段为:,(2)public int executeUpdate(String sql)throws SQLException这个方法主要执行delete、update和insert语句,也可以执行一些建库、建表语句,返回值是整数,表示语句影响的记录数。,例如,给pubs数据库titles表中单价在4美元以下的图书提价2美元,代码片段为:,(3)public void setMaxRows
22、(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将多条insert或update语句添加到Statement对象中,形成一个批处理,最后调用executeB
23、atch()执行这个批处理。,(5)public int executeBatch()throws SQLException执行批处理中的各条insert、update语句,返回一个整型数组,一个数组分量表示一条SQL语句的影响行数。例如:,5、接口用Connection对象生成Statement对象时,可定义ResultSet对象中的指针能够前后移动,并且也可以定义ResultSet对象中的数据可以被更改。,ResultSet中和记录指针移动相关的方法有:(1)public int getRow()throws SQLException获得当前记录的记录号。(2)public boolean
24、 next()throws SQLException将ResultSet对象中的记录指针移到下一条记录处,如果成功移动返回true,移动失败返回false。一般利用此方法来构造一个遍历结果集的循环,(3)boolean previous()throws SQLException将ResultSet对象中的记录指针移到当前记录的上一条记录处,如果成功移动返回true,移动失败返回false。注意此时记录指针应该是可滚动的。(4)public boolean first()throws SQLException将ResultSet对象中的记录指针移到第一条记录处,如果成功移动返回true,移动失败
25、返回false。注意此时记录指针应该是可滚动的。,(5)public boolean last()throws SQLException将ResultSet对象中的记录指针移到最后一条记录处,如果成功移动返回true,移动失败返回false。注意此时记录指针应该是可滚动的。(6)public boolean absolute(int row)throws SQLException将ResultSet对象中的记录指针移到第n条记录处,如果成功移动返回true,移动失败返回false。注意此时记录指针应该是可滚动的。,在ResultSet对象中,读取当前记录各字段值的方法是getXXX()方法,常
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库访问技术 数据库 访问 技术
链接地址:https://www.31ppt.com/p-6296617.html