欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    利用JDBC实现Java程序与数据库的连接.ppt

    • 资源ID:5932780       资源大小:302.61KB        全文页数:21页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    利用JDBC实现Java程序与数据库的连接.ppt

    第16讲 利用JDBC实现Java程序与数据库的连接,16.1 JDBC概述16.2 JDBC驱动程序16.3 JDBC常用类与方法16.4 数据库访问过程,本章要点,了解JDBC的基本概念了解JDBC的几种常用驱动程序了解JDBC的常用类与方法,掌握在与数据库连接经常使用的类与法掌握JDBC访问数据库的基本方法,16.1 JDBC概述,Java定义了一个通用的SQL数据库存取框架,在各种各样的数据库连接模块上提供统一的界面,使与数据库无关的Java工具和产品成为可能,使得数据库连接的开发者可以提供各种各样的连方案。这一通用的SQL数据库存取框架就是JDBC。JDBC的设计者以X/open SQL Call Level Interface(调用层接口)做为API的基础,它也是Microsofts ODBC(开放数据库互连)的基础。,16.2 JDBC应用,与数据库建立连接,发送 SQL 语句,处理结果。Connection con=DriverManager.getConnection(jdbc:odbc:wombat,login,password);Statement stmt=con.createStatement();ResultSet rs=stmt.executeQuery(SELECT a,b,c FROM Table1);while(rs.next()System.out.println(rs.getString(a)+rs.getString(b)+rs.getString(c);JDBC 是一种低级 API,是高级 API 的基础,16.3 两层模型和三层模型,JDBC API 既支持数据库访问的两层模型,同时也支持三层模型。在两层模型中,Java applet 或应用程序将直接与数据库进行对话。这将需要一个 JDBC 驱动程序来与所访问的特定数据库管理系统进行通讯。用户的 SQL 语句被送往数据库中,而其结果将被送回给用户。数据库可以位于另一台计算机上,用户通过网络连接到上面。这就叫做客户机/服务器配置,其中用户的计算机为客户机,提供数据库的计算机为服务器。网络可以是 Intranet(它可将公司职员连接起来),也可以是 Internet。在三层模型中,命令先是被发送到服务的“中间层”,然后由它将 SQL 语句发送给数据库。数据库对 SQL 语句进行处理并将结果送回到中间层,中间层再将结果送回给用户。MIS 主管们都发现三层模型很吸引人,因为可用中间层来控制对公司数据的访问和可作的的更新的种类。中间层的另一个好处是,用户可以利用易于使用的高级API,而中间层将把它转换为相应的低级调用。最后,许多情况下三层结构可提供一些性能上的好处。,16.2.3 JDBC产品,有关最新的信息,请查阅 JDBC 的网站,可通过从以下 URL 开始浏览找到:http:/1 JavaSoft 框架JavaSoft 提供三种 JDBC 产品组件,它们是 Java 开发工具包(JDK)的组成部份:JDBC 驱动程序管理器,JDBC 驱动程序测试工具包,和JDBC-ODBC 桥。2 JDBC 驱动程序的类型 JDBC-ODBC 桥加 ODBC 驱动程序:JavaSoft 桥产品利用 ODBC 驱动程序提供 JDBC 访问。本地 API-部份用 Java 来编写的驱动程序 JDBC 网络纯 Java 驱动程序 本地协议纯 Java 驱动程序,16.3 JDBC常用类与方法之一,1、DriverManager类:负责管理JDBC驱动程序。使用JDBC驱动程序之前,必须先将驱动程序加载并向DriverManager注册后才可以使用,同时提供方法来建立与数据库的连接。方法:A、Class.forName(Stringdriver);/加载注册驱动程序B、StaticConnectiongetConnection(Stringurl,Stringuser,Stringpassword)throwsSQLException;/取得对数据库的连接C、StaticDrivergetDriver(Stringurl)throwsSQLExcetion;/在已经向DriverManager注册的驱动程序中寻找一个能够打开url所指定的数据库的驱动程序,16.3 JDBC常用类与方法之二,2、Connection类负责维护JSP/JAVA数据库程序和数据库之间的联机。可以建立三个非常有用的类对象。方法:A、StatementcreateStatement()throwsSQLException;/建立Statement类对象StatementcreateStatement(intresultSetType,intresultSetConcurrency)throwsSQLException;/建立Statement类对象resultSetType值TYPE_FORWARD_ONLY结果集不可滚动TYPE_SCROLL_INSENSITIVE结果集可滚动,不反映数据库的变化TYPE_SCROLL_SENSITIVE结果集可滚动,反映数据库的变化resultSetConcurrency值CONCUR_READ_ONLY不能用结果集更新数据CONCUR_UPDATABLE能用结果集更新数据JDBC2.0中才支持滚动的结果集,而且可以对数据进行更新B、DatabaseMetaDatagetMetaData()throwsSQLException;/建立DatabaseMetaData类对象C、PreparedStatementprepareStatement(Stringsql)throwsSQLException;/建立PreparedStatement类对象D、booleangetAutoCommit()throwsSQLException/返回Connection类对象的AutoCommit状态E、voidsetAutoCommit(booleanautoCommit)throwsSQLException/设定Connection类对象的AutoCommit状态F、voidcommit()throwsSQLException/确定执行对数据库新增、删除或修改记录的操作G、voidrollback()throwsSQLException/取消执行对数据库新增、删除或修改记录的操作H、voidclose()throwsSQLException/结束Connection对象对数据库的联机I、booleanisClosed()throwsSQLException/测试是否已经关闭Connection类对象对数据库的联机,16.3 JDBC常用类与方法之三,3、Statement类通过Statement类所提供的方法,可以利用标准的SQL命令,对数据库直接新增、删除或修改操作方法:A、ResultSetexecuteQuery(Stringsql)throwsSQLException/使用SELECT命令对数据库进行查询B、intexecuteUpdate(Stringsql)throwsSQLException/使用INSERTDELETEUPDATE对数据库进行新增、删除和修改操作。C、voidclose()throwsSQLException/结束Statement类对象对数据库的联机,16.3 JDBC常用类与方法之四,4、PreparedStatement类 PreparedStatement类和Statement类的不同之处在于PreparedStatement类对象会将传入的SQL命令事先编好等待使用,当有单一的SQL指令比多次执行时,用PreparedStatement类会比Statement类有效率方法:A、ResultSetexecuteQuery()throwsSQLException/使用SELECT命令对数据库进行查询B、intexecuteUpdate()throwsSQLException/使用INSERTDELETEUPDATE对数据库进行新增、删除和修改操作。C、ResultSetMetaDatagetMetaData()throwsSQLException/取得ResultSet类对象有关字段的相关信息D、voidsetInt(intparameterIndex,intx)throwsSQLException/设定整数类型数值给PreparedStatement类对象的IN参数E、voidsetFloat(intparameterIndex,floatx)throwsSQLException/设定浮点数类型数值给PreparedStatement类对象的IN参数F、voidsetNull(intparameterIndex,intsqlType)throwsSQLException/设定NULL类型数值给PreparedStatement类对象的IN参数G、voidsetString(intparameterIndex,Stringx)throwsSQLException/设定字符串类型数值给PreparedStatement类对象的IN参数H、voidsetDate(intparameterIndex,Datex)throwsSQLException/设定日期类型数值给PreparedStatement类对象的IN参数I、voidsetTime(intparameterIndex,Timex)throwsSQLException/设定时间类型数值给PreparedStatement类对象的IN参数,16.3 JDBC常用类与方法之五,5、DatabaseMetaData类DatabaseMetaData类保存了数据库的所有特性,并且提供许多方法来取得这些信息。方法:A、StringgetDatabaseProductName()throwsSQLException/取得数据库名称B、StringgetDatabaseProductVersion()throwsSQLException/取得数据库版本代号C、StringgetDriverName()throwsSQLException/取得JDBC驱动程序的名称D、StringgetDriverVersion()throwsSQLException/取得JDBC驱动程序的版本代号E、StringgetURL()throwsSQLException/取得连接数据库的JDBCURLF、StringgetUserName()throwsSQLException/取得登录数据库的使用者帐号,16.3 JDBC常用类与方法之六,6、ResultSet类负责存储查询数据库的结果。并提供一系列的方法对数据库进行新增、删除和修改操作。也负责维护一个记录指针(Cursor),记录指针指向数据表中的某个记录,通过适当的移动记录指针,可以随心所欲的存取数据库,加强程序的效率。方法:A、booleanabsolute(introw)throwsSQLException/移动记录指针到指定的记录B、voidbeforeFirst()throwsSQLException/移动记录指针到第一笔记录之前C、voidafterLast()throwsSQLException/移动记录指针到最后一笔记录之后D、booleanfirst()throwsSQLException/移动记录指针到第一笔记录E、booleanlast()throwsSQLException/移动记录指针到最后一笔记录F、booleannext()throwsSQLException/移动记录指针到下一笔记录G、booleanprevious()throwsSQLException/移动记录指针到上一笔记录H、voiddeleteRow()throwsSQLException/删除记录指针指向的记录I、voidmoveToInsertRow()throwsSQLException/移动记录指针以新增一笔记录J、voidmoveToCurrentRow()throwsSQLException/移动记录指针到被记忆的记录K、voidinsertRow()throwsSQLException/新增一笔记录到数据库中L、voidupdateRow()throwsSQLException/修改数据库中的一笔记录M、voidupdate类型(intcolumnIndex,类型x)throwsSQLException/修改指定字段的值N、intget类型(intcolumnIndex)throwsSQLException/取得指定字段的值O、ResultSetMetaDatagetMetaData()throwsSQLException/取得ResultSetMetaData类对象,16.3 JDBC常用类与方法之七,7、ResultSetMetaData类ResultSetMetaData类对象保存了所有ResultSet类对象中关于字段的信息,提供许多方法来取得这些信息。方法:A、intgetColumnCount()throwsSQLException/取得ResultSet类对象的字段个数B、intgetColumnDisplaySize()throwsSQLException/取得ResultSet类对象的字段长度C、StringgetColumnName(intcolumn)throwsSQLException/取得ResultSet类对象的字段名称D、StringgetColumnTypeName(intcolumn)throwsSQLException/取得ResultSet类对象的字段类型名称E、StringgetTableName(intcolumn)throwsSQLException/取得ResultSet类对象的字段所属数据表的名称F、booleanisCaseSensitive(intcolumn)throwsSQLException/测试ResultSet类对象的字段是否区分大小写G、booleanisReadOnly(intcolumn)throwsSQLException/测试ResultSet类对象的字段是否为只读,16.4 数据库访问过程,16.4.1 JDBCODBC访问的流程 JDBC Driver Mannager-JDBCODBC桥-ODBC-数据库客户机驱动库-数据库服务器-返回查询结果,在这种访问中值的我们注意的是虽然JAVA是“Write Once,Run Anywhere”,但是如果通过这种访问的话,需要客户端必须设置ODBC和有相应的数据库客户机的驱动。由于不是所有的数据库服务器提供商都提供JDBC驱动程序(给JDBC访问提供相应的接口),所以就有了JDBCODBC Bridge。,16.4 数据库访问过程之二,16.4.2 JDBC驱动返回查询结果 JDBC Driver Mannager-局部JDBC驱动-客户端数据库-数据库服务JDBC驱动返回查询结果器-返回查询结果,这种访问事实上是转换JDBC调用为相应的数据库(Oracle,Sybase,Informix,DB2,和其他的数据库数据库管理系统)的客户端API调用,这种方式的访问需要相应的数据库提供商提供相应的JDBC驱动程序,但是有一种好处,可以独立于odbc用于可以随处可Run的客户端的浏览器中的Applet程序。,16.4.3 JDBC连接举例,以连接一个SQLSever数据库为例设置odbc:打开odbc数据源-选择系统dsn(Click加新的dsn-)-接下来输入选择数据库类型、输入dsn名:、选择服务器、连接数据库的方式、输入数据库的登陆用户和密码-测试连接,如果测试成功的话,那么dsn就建立好了,假定dsn名为Sqlserver.使用的是sqlserver2000,以“sa”登陆,密码为空。,16.4.3 JDBC连接举例(续一),import java.sql.*;/加载java数据连接包,java基本所有的数据库的调用的都在这个东西里面 public class InsertCoffees public static void main(String args)String url=jdbc:odbc:sqlserver;/取得连接的url名,注意sqlserver是dsn名 Connection con;/实例化一个Connection对象 Statement stmt;String query=select*from col_link;/选择所有的Col_link表中的数据输出,16.4.3 JDBC连接举例(续二),try);/加载jdbc-odbc桥驱动 e)System.err.print(ClassNotFoundException:);/加载jdbc-odbc桥错误 System.err.println(e.getMessage();/其他错误 try con=DriverManager.getConnection(url,sa,);/数据库连接,16.4.3 JDBC连接举例(续三),stmt=con.createStatement();/Create 一个声明 stmt.executeUpdate(CREATE TABLE col_link(sitename varchar(20)NULL,siteurl varchar(50)NULL);/执行了一个sql语句生成了一个表col_link的表 stmt.executeUpdate(insert into col_link values(ASP中华网,http:/);stmt.executeUpdate(insert into col_link values(永远到底有多远,http:/);/执行一个insert into语句 stmt.executeUpdate(update col_link set siteurl=http:/where siteurl=http:/);/执行一个update语句,更新数据库 ResultSet rs=stmt.executeQuery(query);/返回一个结果集,16.4.3 JDBC连接举例(续四),System.out.println(Col_link表中的数据如下(原始数据);/下面的语句使用了一个while循环打印出了col_link表中的所有的数据(站点名+站点地址);(-+-);while(rs.next()String s=rs.getString(sitename);String f=rs.getString(siteurl);/取得数据库中的数据 System.out.println(s+f);/*String t=rs.getString(1);String l=rs.getString(2);System.out.println(t+l);*/*jdbc提供了两种方法识别字段,一种是使用getXXX(注意这里的getXXX表示取不同类型字段的不同的方法)获得字段名,第二种*是通过字段索引,这里把第二种方法注释了*/,16.4.3 JDBC连接举例(续五),/*可以访问这个连接获得getxxx的用法:*/stmt.close();con.close();/上面的语句关闭声明和连接 catch(SQLException ex)System.err.println(SQLException:+ex.getMessage();/显示数据库连接错误或者查询错误,

    注意事项

    本文(利用JDBC实现Java程序与数据库的连接.ppt)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开