第六章 数据库连接PPT讲稿.ppt

上传人:石*** 文档编号:44727612 上传时间:2022-09-22 格式:PPT 页数:40 大小:2.01MB
返回 下载 相关 举报
第六章 数据库连接PPT讲稿.ppt_第1页
第1页 / 共40页
第六章 数据库连接PPT讲稿.ppt_第2页
第2页 / 共40页
点击查看更多>>
资源描述

《第六章 数据库连接PPT讲稿.ppt》由会员分享,可在线阅读,更多相关《第六章 数据库连接PPT讲稿.ppt(40页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第六章 数据库连接第1页,共40页,编辑于2022年,星期三重点+难点l数据库环境的配置l利用JDBC驱动实现对数据库的访问第2页,共40页,编辑于2022年,星期三6.1 数据库和常用的SQL语句l数据库管理系统(DBMS)是一个软件系统,它具有存储、检索和修改数据的功能,数据库关联系统具有4个发展阶段。层次型、网络型、关系型和关系对象型。l我们使用的是SQL Server2000,mysqllJDBC是Sun公司提供的一组类和接口,程序员可以利用这组类和接口与数据库进行通信。JDBC接口,非常方便的实现了在java中连接数据库第3页,共40页,编辑于2022年,星期三SQL语句l创建删除数

2、据库create database bookdrop database bookl创建删除表create table item(item_Id int,item_name varchar(20)drop table iteml更改表的结构alter table item add item_dis varchar(100)alter table item drop item第4页,共40页,编辑于2022年,星期三SQL语句l创建删除视图create view products(productname,quantity,listprice)as select p.productname,v.qt

3、y,i.listprice from product p,inventory v,item i where p.productId=i.productid and itwmid=v.itemiddelete view productsl插入一条语句insert语句是用来向表中添加记录的insert into item values(1,“计算机”,“计算机工程类的书籍”)第5页,共40页,编辑于2022年,星期三SQL语句l在表中删除数据delete删除表中已经存在的一条或多条记录delete from item where item_Id=1;l更新表中的数据update语句用来修改表中已经

4、存在的一条或多条记录update item set intem_name=“法学”where item_Id=1 第6页,共40页,编辑于2022年,星期三SQL语句l条件子句(1)where语句使用where可以选择满足条件的特定记录(2)in和not in选择列值与列值表中某一个值相等的相关信息(3)betweenand和not betweenand选择列值在某个范围的记录(4)like和not like(5)is null和not null(6)逻辑运算and和or(7)order by语句第7页,共40页,编辑于2022年,星期三6.2 JDBC技术和驱动程序6.2.1JDBC技术介绍

5、lJDBC API为Java开发人员使用数据库提供了统一的编程接口,它由一组Java类和接口组成。JDBC API使得开发人员可与使用纯Java语言的方式来连接数据库,并进行操作。l企业级环境中进行的数据库操作远远不只是 连接数据库并执行语句,还需要考虑其它方面的要求。包括使用连接缓冲池来优化资源的使用,实现分布式事务处理。第8页,共40页,编辑于2022年,星期三JDBC 3.0 版本包含了两个包:Java.sql和Javax.sqllJava.sql 这个包中的类和接口主要是针对基本的数据库编程服务,如生成连接、执行语句、以及准备语句和运行批处理查询等。同时也有一些 高级操作,比如批处理更

6、新、事物隔离和可滚动结果集等。lJavax.sql 这个包主要是为数据库方面的高级操作提供接口和类。如连接管理类、创建语句类第9页,共40页,编辑于2022年,星期三6.2.2数据库驱动器程序l数据库厂商一般会提供一组API访问数据库,有些厂商也专门提供数据库驱动程序,并且这些产品除了执行驱动的功能外,往往还提供一些额外的服务。lJDBC驱动程序是数据库厂商根据Sun公司提供的JDBC接口标准提供的一组实现类。JDBC 驱动程序的类型 JDBC-ODBC桥驱动程序及桥驱动程序及ODBC驱动程序驱动程序 本地本地API部分部分Java驱动程序驱动程序 JDBC-Net 纯纯Java驱动程序驱动程

7、序 本地协议纯本地协议纯Java驱动程序驱动程序 第10页,共40页,编辑于2022年,星期三有4种类型的数据库驱动程序lJDBC-ODBC桥桥 通过JDBC-ODBC桥,开发者可以使用JDBC访问一个ODBC数据源。JDBC-ODBC桥驱动程序为Java应用程序提供了一种把JDBC调用映射成ODBC调用的方法。因此在客户端计算机上安装一个ODBC驱动。缺点:效率相对底下。l部分部分Java,部分本机驱动程序,部分本机驱动程序 这种驱动程序使用Java实现与数据库厂商专有API混合形式来提供数据访问。它比JDBC-ODBC桥的形式快。在这种方势力,必须在运行Java应用程序的客户端安装驱动程序

8、和厂商专有的API。现在大多数的数据库厂商都在其数据库产品中提供该驱动程序第11页,共40页,编辑于2022年,星期三l中间数据访问服务器中间数据访问服务器 这种形式使用中间数据访问服务器。通过这种服务器,他可以把Java客户端连接到多个数据库服务器上。他不需要客户端的数据库驱动,而是使用网络-服务器中层来访问一个数据库。该类型的驱动程序使用网络协议,并完全通过Java驱动,他为Java应用程序提供了一种进行JDBC调用的机制。l纯纯Java驱动程序驱动程序 这种方式使用厂商专有的网络协议把JDBC API调用转换称直接的网络调用,这种方式的本质是使用套接字进行编程。纯Java驱动运行在客户端

9、,并且直接访问数据库。它的使用比较简单,客户端不需要安装任何中间件或者运行库。现在大部分厂商都提供第4类驱动程序的支持。第12页,共40页,编辑于2022年,星期三四种访问方式比较l第第1、2类驱动程序是数据库厂商为提供第类驱动程序是数据库厂商为提供第4类类JDBC驱动程序的一种过渡解决方案,例驱动程序的一种过渡解决方案,例如通过如通过JDBC访问访问Access数据库。数据库。l第第3类驱动程序适合那种需要同时连接多个类驱动程序适合那种需要同时连接多个不同种类的数据库不同种类的数据库,并且对并发连接要求高并且对并发连接要求高的三层应用程序中。的三层应用程序中。l第第1、2、4类驱动程序常用于

10、类驱动程序常用于C/S模式的应模式的应用程序中。用程序中。l访问速度访问速度:241稳定性稳定性:421第13页,共40页,编辑于2022年,星期三6.3 JDBC常用接口使用介绍1.Driver接口 每个数据库驱动程序必须实现Driver接口。对于JSP开发者而言,只要使用Driver接口就可以了。在编程中要连接数据库,必须先装载特定厂商提供的数据库驱动程序(Driver),不同驱动程序的装载方法。使用JDBC-ODBC BridgeDriver,这样装载:Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);对于Access适用第14页,共40页,编辑

11、于2022年,星期三使用 JDBC Driver,这样装载 Class.forName(“jdbc.driver_class_name”);在使用Class.forName之前,先适用import语句导入java.sql包。import java.sql.*;装载MS SQLServer 驱动:Class.forName(“com.microsoft.jdbc.sqlserver.SQLServerDriver”);装载 MySQL JDBC驱动:Class.forName(“org.git.mm.mysql.Driver”);装载 Oracle JDBC驱动:Class.forName(“o

12、racle.jdbc.driver.OracleDriver”);第15页,共40页,编辑于2022年,星期三2.DriverManager(驱动程序管理器)DriverManager 是JDBC(Java数据库连接)的管理层。作用于用户和驱动程序之间。DriverManager 可以跟踪驱动程序,并在数据库和相应驱动程序之间建立连接。DriverManager激发getConnection()方法时,DriverManager首先从它已加载的驱动程序池中找到一个可以接受该数据库URL的驱动程序,然后请求该驱动程序使用相关的数据库URL连接到数据库中,于是getConnection()方法建立

13、了与数据库连接。第16页,共40页,编辑于2022年,星期三DriverManager.getConnection()方法(静态的)static connection getConnection(String url);static connection getConnection(String url,String info);static connection getConnection(String url,String name,String pwd);URL:类似于其他场合的URL,语法如下:jdbc:jdbc:表示 协议,他是唯一的,JDBC只有这一种协议子协议:主要用于识别数据库

14、驱动程序,也就是说,不同的数据库驱动程序的子协议不同子名:它属于专门的驱动程序,不同的专有驱动程序可以采用不同的实现第17页,共40页,编辑于2022年,星期三数据库连接字符串数据数据库库 驱动驱动程序名称程序名称URLMicrosoft Accesssun.jdbc.odbc.JdbcOdbcDriverjdbc:odbc:studentMicrosoft Sql Server 2000com.microsoft.jdbc.sqlserver.SQLServerDriverjdbc:microsoft:sqlserver:/localhost:1433;databasename=studen

15、tMicrosoft Sql Server 2005com.microsoft.sqlserver.jdbc.SQLServerDriverjdbc:sqlserver:/localhost:2667;databasename=studentOracle 9ioracle.jdbc.driver.OracleDriverjdbc:oracle:thin:localhost:1521:studentjdbc:oracle:oci:student第18页,共40页,编辑于2022年,星期三3.Connection一个Connection表示与一个特定数据库的会话。Connection对象代表与数据

16、库的连接。连接过程包括所执行的SQL语句和在连接上所返回的结果。Connection conn=DriverManager.getConnection(url,login,pwd);Connection接口是JSP编程中使用最频繁的接口之一。Connection接口中常用到的方法:close():关闭连接。isclose():判断连接是否关闭。createStatement():创建SQL语句对象。第19页,共40页,编辑于2022年,星期三getAutoCommit():获得当前自动提交状态。commit():提交对数据库的更改,使更改生效。setAutoCommit(boolean val

17、ue):设置连接是否处于自动提交状态。rollback():回滚上一次提交或回滚操作后的所有更改prepareStatement(String sql):可以被预编译存放在prepareStatement对象中,该对象用于有效地多次执行该语句。prepareCall(String sql):返回值是创建的CallableStatement 对象,可以用来处理一个SQL存储过程setReadOnly():可以把一个连接设置为只读状态。isReadOnly():检测该连接是否存在只读状态第20页,共40页,编辑于2022年,星期三4.StatementStatement对象代表SQL语句。可用于将

18、SQL语句发送至数据库。Statement对象存在3种。Statement对象,用来执行基本的SQL语句。PrepareStatement对象,从Statement继承,用于提供可以查询信息一起预编译的语句。CallableStatement,它继承自PrepareStatement,用来执行数据库中的存储过程。Statement常用的方法:cancle():用于一个线程取消另一个线程正在执行的一条语句。第21页,共40页,编辑于2022年,星期三close():用来关闭语句。同时立即释放该语句的数据库和JDBC资源。如果它有相应产生的ResultSet,则ResultSet也会被关闭。exe

19、cute(String sql):执行一条可能返回多个结果的SQL语句。返回布尔值。若有ResultSet,则返回true,如果它是一个更新数据或没有其它结果,则返回false。executeQurey(String sql):执行一个返回单个ResultSet的SQL语句,返回值是由查询产生的数据ResultSet。executeUpdate(String sql):执行一条insert、update或delete语句或是没有返回值的SQL语句。该方法返回语句影响的行数,如果是没有影响的行数则返回0。第22页,共40页,编辑于2022年,星期三getResultSet():得到当前的Resu

20、ltSet的结果。getUpdateCount():得到更新的数量,如果结果是一个ResultSet或没有其他结果,则返回-1。5.PrepareStatementPrepareStatement类对象封装一条预编译的SQL语句,用于高效地多次执行该语句。常用的方法:clearParameters():立即释放当前参数值使用的资源execute():执行一条可能返回多个结果的SQL语句,返回一个布尔值。如果下一个结果是ResultSet,则返回true,否则返回false第23页,共40页,编辑于2022年,星期三 executeQuery():执行准备好的SQL查询并返回ResultSet

21、executeUpdate():执行一条insert、update或delete语句或是没有返回值的SQL语句。setBoolean(int parameterIndex,boolean x);setByte(int parameterIndex,byte x)setBytes(int parameterIndex,byte x)setDate(int parameterIndex,Date x)setDouble(int parameterIndex,double x)setFloat(int parameterIndex,float x)setInt(int parameterIndex,

22、int x)setShort(int parameterIndex,short x)第24页,共40页,编辑于2022年,星期三6.ResultSet ResultSet 类可用来接受执行SQL查询语句后得到的记录集。第25页,共40页,编辑于2022年,星期三JDBC连接数据库流程开 始导入 java.sql包 加载并注册驱动程序创建一个 Connection 对象创建一个 Statement 对象执行SQL语句关闭ResultSet 对象关闭Statement对象关闭连接结 束使用ResultSet对象第26页,共40页,编辑于2022年,星期三程序演示演示创建数据库连接的具体步骤演示创建

23、数据库连接的具体步骤第27页,共40页,编辑于2022年,星期三错误提示lsocket establish error错误的解决方法检查SQL Server服务是否启动对于Windows XP、Windows 2003操作系统,确保SQL Servler 2000升级至sp3以上版本(用netstat n-a)查看端口是否打开如果系统安装了防火墙软件,请暂时关闭实时监控选项第28页,共40页,编辑于2022年,星期三记录查询实例第29页,共40页,编辑于2022年,星期三实例第30页,共40页,编辑于2022年,星期三第31页,共40页,编辑于2022年,星期三向数据库中插入记录第32页,共40页,编辑于2022年,星期三代码第33页,共40页,编辑于2022年,星期三第34页,共40页,编辑于2022年,星期三删除一条记录第35页,共40页,编辑于2022年,星期三代码第36页,共40页,编辑于2022年,星期三第37页,共40页,编辑于2022年,星期三修改一条记录:第38页,共40页,编辑于2022年,星期三第39页,共40页,编辑于2022年,星期三第40页,共40页,编辑于2022年,星期三

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁