收藏 分销(赏)

JDBC详细讲解PPT.ppt

上传人:w****g 文档编号:10243926 上传时间:2025-04-29 格式:PPT 页数:25 大小:652KB
下载 相关 举报
JDBC详细讲解PPT.ppt_第1页
第1页 / 共25页
JDBC详细讲解PPT.ppt_第2页
第2页 / 共25页
点击查看更多>>
资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,本章教学,教学目标:,4.1 JDBC,简介,4.2 JDBC,编程,教学重点:,JDBC,的开发步骤,教学难点:,JDBC,编程,1,4.1 JDBC,简介,JDBC(Java Database Connectivity),1996,年,,sun,公司提出。,是,Java,程序与数据库系统通信的标准,API,。,它由一组用,Java,程序语言编写的类和接口组成。,作用,规避数据库的不同,为程序开发人员访问数据库提供统一的编程接口,即为,API;,JDBC,可以做什么?,答:和数据库建立连接,发送,sql,语句,处理数据库返回的结果集,,2,4.1 JDBC,简介,JDBC,通过提供一个抽象的数据库接口,使得程序开发人员在编程时可以不用绑定在特定数据库厂商的,API,上,大大增加了应用程序的可移植性。,3,4.1 JDBC,简介,JDBC,接口层,JDBC,驱动层,J2EE,应用,JDBC API,数据库,JDBC,驱动程序,数据库,程序员开发,Sun,数据库厂商,应用层,JDBC,将应用程序与具体的数据库产品隔离,大大简化应用程序开发过程,提高可移植性。,4,4.1.1 ODBC,ODBC:Open Database Donnectivity,由,microsoft,提出,基于,C,语言的;,ODBC,应用程序,ODBC,应用程序,ODBC API,函数,ODBC,驱动程序管理器,ODBC,驱动程序,1,ODBC,驱动程序,n,数据源,1,数据源,n,ODBC,的体系结构,5,4.1.2 JDBC,驱动程序,1,、,JDBC-ODBC,桥,JDBC-ODBC,桥把,JDBC,操作,翻译,成对应的,ODBC,调用。,在,JDBC,刚产生时,,JDBC-ODBC,桥是非常有用的。通过它,开发者都可以使用,JDBC,来访问一个,ODBC,数据源。,缺点:执行效率比较低;它需要在客户机上安装一个,ODBC,驱动,使用这一类驱动,就失去,JDBC,平台无关的好处;此外,,ODBC,驱动器需要客户端的管理。,6,4.1.3 JDBC API,JDBC API,为,Java,应用程序开发者使用数据库提供了统一的编程接口,它由一组,Java,类和接口组成:,java.sql,包和,javax.sql,包,java.sql,包含的类和接口主要对基本的数据库编程服务,如生成连接、执行语句、以及准备语句和运行批处理查询等。也有一些高级的处理,如批处理更新、事务隔离和可滚动结果集。,在企业级,java,应用中进行的数据库操作远远不止数据库的连接并执行语句,还需要考虑其它方面的要求,包括使用,连接池,来优化资源的使用,实现,分布式事务处理,。,javax.sql,为连接管理、分布式事务和有的提供了更好的抽象,引入了容器管理的连接池、分布式事务和行集(,RowSet,),7,4.1.3 JDBC API,所有的数据库,JDBC,驱动程序都应实现的重要接口是:,java.sql.DriverManager,处理驱动程序的调入并且对驱动程序进行管理。,java.sql.Connection,代表对特定数据库的连接。,java.sql.Statement,代表一个特定的容器,用以对一个特定的数据库执行,SQL,语句。,java.sql.ResultSet,控制对一个特定语句的行数据的存取。,8,4.1.4 JDBC,主要对象,1.,连接(,Connection,),2.,语句(,Statement,),3.,结果集,(ResultSet),9,4.1.4 JDBC,主要对象,1.,连接(,Connection,),连接是客户端,Java,代码和数据库之间的通信连接,由,JDBC,驱动程序建立。它保存了所有对数据库服务器调用的上下文信息。,10,4.1.4 JDBC,主要对象,2.,语句,用于对数据库发送数据操纵命令,通过语句对象,可以完成获取结果集,对数据库记录进行,CRUD,。,11,4.2 JDBC,编程,创建数据库连接,分为以下几步:,1.,装载并注册数据库的,JDBC,驱动程序,2.,建立连接,3.,建立,Statement,对象,4.,准备并执行调用,SQL,语句,5.,处理,ResultSet,中的记录集,6.,释放资源,12,4.2 JDBC,编程,/*,装载驱动,获取连接,创建语句对象*,/,Class.,forName,(driver);,con=DriverManager.,getConnection,(url,user,pass);,stmt=con.createStatement();,/*,准备并执行调用,SQL,语句,*,/,sqlstr=insert into+tableName+values(000099995,中国,45);,stmt.executeUpdate(sqlstr);,sqlstr=select*from+tableName;,rs=stmt.executeQuery(sqlstr);,13,4.2 JDBC,编程,/*,处理,ResultSet,中的记录集*,/,ResultSetMetaData rsmd=rs.getMetaData();/,获取元数据,int j=0;,j=rsmd.getColumnCount();/,获得结果集的行数,for(int k=0;kj;k+),System.,out,.print(rsmd.getColumnName(k+1);/,显示表中字段属性,System.,out,.print(t);,System.,out,.print(n);,while(rs.next()/,显示结果集的内容,for(int i=0;ij;i+),System.,out,.print(rs.getString(i+1);,System.,out,.print(t);,System.,out,.print(n);,14,4.2 JDBC,编程,/*,异常处理*,/,catch(ClassNotFoundException e1),System.,out,.println(,数据库驱动不存在!,);,System.,out,.println(e1.toString();,catch(SQLException e2),System.,out,.println(,数据库异常!,);,System.,out,.println(e2.toString();,15,4.2 JDBC,编程,/*,关闭连接*,/,finally,try,/*,关闭对象*,/,if(rs!=null)rs.close();,if(stmt!=null)stmt.close();,if(con!=null)con.close();,catch(SQLException e),System.,out,.println(e.toString();,16,4.2.1,注册驱动,注册驱动,a.,通过类装载器,:,Class.forName(,“,com.mysql.jdbc.Driver,”,);,b.,直接实例化驱动,:,java.sql.DriverManager.registerDriver(new com.mysql.jdbc.Driver();,c.,通过,jdbc.drivers,属性,System.setProperty(“jdbc.drivers”,”,com.microsoft.sqlserver.jdbc.SQLServerDriver,”);,17,4.2.2,建立连接,建立连接,通过,DriverManager:,Connection con=DriverManager.getConnection(url,user,password);,url,表示连接数据库的,JDBC URL,一般形式为,jdbc:drivertype:driversubtype:/parameter,jdbc,指出要使用,JDBC,drivertype,驱动程序的类型,该部分也叫,subprotocal,driversubtype,可选的参数,parameter,通常用来设置数据库服务器的,IP,地址、端口号和数据库的 名称。,18,4.2.2,建立连接,常用的,URL,对,MySQL,数据库,URL,为,jdbc:mysql:/localhost:3306/dbName,对,Oracle,数据库,数据库,URL,为,jdbc:oracle:thin:localhost:1521:dbname,对,SQLSERVER2000,数据库,URL,为,jdbc:microsoft:sqlserver:/localhost:1433;DatabaseName=dbName,如果通过,JDBC-ODBC Driver,连接数据库,数据库,URL,为:,jdbc:odbc:datasource,19,4.2.3,准备并执行,SQL,语句,建立,Statement,对象,Statement,statement,=con.createStatement();,准备并执行调用,SQL,语句,String sql=,“,select*from Employees,”,;,ResultSet rs=,statement,.executeQuery(sql);,执行语句的种类,statement.executeQuery();,返回类型,ResultSet,statement.executeUpdate();,返回类型,int,,执行此,sql,语句所影响的记录数。,statement.execute();,返回类型,boolean,,代表执行此语句是否有,resultset,,返回,ture,就是有,。,20,4.2.4,处理记录集,处理,ResultSet,中的记录集,只有,select,语句,才会有结果集返回;,rs,是一个游标,初始时在第一条记录的上面一行。,每,next,一次,向下一行;此外,还有,beforeFirst(),和,last(),。,getString,,获取记录的数据。可以使用位置标识,也可以使用列名来标识(当结果集字段比较多的时候用列名标识法,可以增强程序的可读性)。,结果集的方法还有很多,请参考,JDK,的帮助文档,String sql=“,select,*from Employees”;,ResultSet,rs,=statement.executeQuery(sql);,while(,rs,.next(),String col1=,rs,.getString(1);,String col2=,rs,.getString(fname);,float col3=,rs,.getFloat(3);,21,4.2.4,处理记录集,获取元数据,ResultSetMetaData rsmd=rs.getMetaData();,int columncount=rsmd.getColumnCount();,for(int i=1;i=columncount;i+),out.println(rsmd.getColumnName);,out.println(rsmd.getColumnTypeName),22,4.2.5,释放资源,5.,释放资源,一般写在,finally,语句块中。所释放的资源一般有,ResultSet,,,Statement,Connection,rs.close();,stmt.close();,con.close();,注意,:,关闭时按,ResultSet-Statement-Connection,顺序依次关闭;,关闭时要判断对象是否为空,否则当关闭一个空对象时,会有异常。,例如:,if(rs!=null),rs.close();,23,4.2 JDBC,编程,7,、异常处理和警告,在数据库操作的过程中必须要有异常处理过程。,装载驱动时,处理的异常类,ClassNotFoundException,其他要处理的异常类是,SQLException,try,Class.forName(driver);,catch(,ClassNotFoundException,e1),/,异常处理语句,catch(,SQLException,e2),/,异常处理语句,24,小结,1.JDBC,的四种驱动类型和三种连接对象,2.,创建数据库连接的步骤,装载并注册数据库的,JDBC,驱动程序,建立连接,建立,Statement,对象,准备调用,SQL,语句,准备并执行调用,SQL,语句,处理,ResultSet,中的记录集,释放资源,25,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服