与数据库的连接及数据的基本操作.ppt

上传人:wuy****n92 文档编号:86906723 上传时间:2023-04-15 格式:PPT 页数:31 大小:437KB
返回 下载 相关 举报
与数据库的连接及数据的基本操作.ppt_第1页
第1页 / 共31页
与数据库的连接及数据的基本操作.ppt_第2页
第2页 / 共31页
点击查看更多>>
资源描述

《与数据库的连接及数据的基本操作.ppt》由会员分享,可在线阅读,更多相关《与数据库的连接及数据的基本操作.ppt(31页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、1模块模块6Java数据库编程数据库编程26.1 与数据库的连接及基本操作与数据库的连接及基本操作一、知识能力目标一、知识能力目标w1了解JDBC的概念和使用JDBC的作用;w2熟悉与其它数据库建立连接的方法;w3掌握采用JDBC_ODBC桥接、JDBC直连方式与SQL数据库连接的方法;w4掌握在Java中如何创建、执行JDBC语句以及处理结果;w5能编写与数据库连接的Java程序3二、项目42使用JDBC-ODBC桥接实现与数据库的连接及查询数据表中的数据w在控制台显示pubs数据库中publishers表中全部记录42.相关知识相关知识wJDBC的基本功能的基本功能nJavaDataBas

2、eConnectivity,Java数据库连接n由一组用Java编程语言编写的类和接口组成,是一种可用于执行SQL语句的JavaAPIn在java.sql包中定义wJDBCAPI中定义的主要类n数据库驱动程序管理器类DriverManagerl在用户程序和数据库系统之间维护着与数据库驱动程序之间的连接l实现驱动程序的装载l创建与数据库系统连接的Connection类对象DriverManager类的常用方法方法主要功能主要功能void deregisterDriver(Driverdriver)从DriverManager的列表中删除一个驱动程序Connection getConnection

3、(Stringurl)建立到给定数据库URL的连接Connection getConnection(Stringurl,Propertiesinfo)建立到给定数据库URL的连接Connection getConnection(Stringurl,Stringuser,Stringpassword)建立到给定数据库URL的连接Driver:每个驱动程序类必须实现的接口Driver getDriver(Stringurl)查找能理解给定URL的驱动程序Enumeration getDrivers()获取带有当前调用者可以访问的所有当前已加载JDBC驱动程序的Enumerationint getL

4、oginTimeout()获取驱动程序试图登录到某一数据库时可以等待的最长时间,以秒为单位。void registerDriver(Driverdriver)向DriverManager注册给定驱动程序void setLoginTimeout(intseconds)设置驱动程序试图连接到某一数据库时将等待的最长时间,以秒为单位。类类Connection用于管理到指定数据库的连接用于管理到指定数据库的连接方法方法主要功能主要功能voidclearWarning()清除为此Connection对象报告的所有警告SQLWarning getWarnings()获取此Connection对象上的调用报

5、告的第一个警告voidclose()即释放此Connection对象的数据库和JDBC资源boolean isClosed()查询此Connection对象是否已经被关闭voidcommit()使所有上一次提交/回滚后进行的更改成为持久更改,并释放此Connection对象当前持有的所有数据库锁。8Statement createStatement(intresultSetType,intresultSetConcurrency)创建一个Statement对象,该对象将生成具有给定类型和并发性的ResultSet对象Statement用于执行静态SQL语句并返回它所生成结果的对象resultS

6、etType-结果集类型,包括:TYPE_FORWARD_ONLY1003指针只能向前移动TYPE_SCROLL_INSENSITIVE1004指针可滚动但通常不受其他的更改影响TYPE_SCROLL_SENSITIVE1005指针可滚动并且通常受其他的更改影响resultSetConcurrency-结果集的并发性,包括CONCUR_READ_ONLY1007不可以更新CONCUR_UPDATABLE1008可以更新使用返回的Statement对象创建的结果集在默认情况下类型为TYPE_FORWARD_ONLY,并带有CONCUR_READ_ONLY并发级别Statement createS

7、tatement()创建一个Statement对象来将SQL语句发送到数据库String getCatalog()获取此Connection对象的当前目录名称void setCatalog(Stringcatalog)设置给定目录名称DatabaseMetaData getMetaData()获取一个DatabaseMetaData对象,该对象包含关于此Connection对象所连接的数据库的元数据接口DatabaseMetaData(数据库元数据)关于数据库的整体综合信息元数据:描述数据及其环境的数据能提供基于用户的信息能支持系统对数据的管理和维护boolean isReadOnly()查询

8、此Connection对象是否处于只读模式void setReadOnly(booleanreadOnly)将此连接设置为只读模式CallableStatement prepareCall(Stringsql)创建一个CallableStatement对象来调用数据库存储过程CallableStatement:用于执行SQL存储过程的接口PreparedStatement:表示预编译的SQL语句的对象PreparedStatementprepareStatement(Stringsql)创建一个PreparedStatement对象来将参数化的SQL语句发送到数据库void rollback(

9、)取消在当前事务中进行的所有更改,并释放此Connection对象当前持有的所有数据库锁11wJDBC访问数据库的两种方式访问数据库的两种方式n利用数据库产品的面向利用数据库产品的面向ODBC驱动程序,在驱动程序,在JDBC和和ODBC之间建立之间建立JDBC-ODBC桥,在桥,在Java程序中基于程序中基于JDBC-ODBC桥的方式访问数据桥的方式访问数据库库n基于特定数据库产品的基于特定数据库产品的JDBC驱动程序,在驱动程序,在Java应用程序中利用应用程序中利用JDBC数据驱动程序直接与数据数据驱动程序直接与数据库连接库连接w建立数据库连接建立数据库连接n首先必须通过类的forName

10、()动态加载驱动程序类,加载驱动器的语句为:Class.forName(sun.jdbc.odbc.JdbcOdbcDrvier);n再向DriverManager注册JDBC驱动程序,用DriverManager类中的getConnection()方法建立与数据库的连接。Connectioncon=DriverManager.getConnection(url,数据库的用户名,密码);lurl是由三部分组成,是提供识别数据库方式的串::例:如果数据源是MyDataSource,则url可以写成:jdbc:odbc:MyDataSourcew创建数据源的步骤创建数据源的步骤(WindowsXP

11、)n打开控制面版性能和维护管理工具数据源(ODBC)n在“用户DSN”中单击添加按钮w创建数据源的步骤创建数据源的步骤(WindowsXP)n选择SQLServer,点击完成按钮n在名称栏内写上数据源的名字,如MyDataSource服务如果是用本机的话就直接写上“.”号就可以了,如果是用别的服务器,请单击下拉按钮选择。然后单击下一步w创建数据源的步骤创建数据源的步骤(WindowsXP)n可以选择使用用户输入登录的ID和密码的SQLServer验证,然后设置登录SQL的用户名和密码,如用户名为sa,密码为空,然后点下一步n更改默认的数据库(你处理哪个数据库中的数据,就把对应的数据库更改为默认

12、数据库,如pubs),然后点下一步w创建数据源的步骤创建数据源的步骤(WindowsXP)n直接点完成n点击测试数据源,测试是否连接成功。至此数据源建立完毕。点击确定按钮退出此对话框w创建和执行创建和执行JDBC语句语句nStatement对象可将简单的查询发送到数据库。对象可将简单的查询发送到数据库。l创建一个创建一个Statement对象对象l将想要执行的将想要执行的SQL语句传递给适当的执行方法语句传递给适当的执行方法l执行该执行该Statement对象。对象。如:如:Statement stat=con.createStatement();n对于对于SELECT语句,使用的方法是语句,

13、使用的方法是executeQuery()n对于创建、插入或更新表的语句,使用的方法是对于创建、插入或更新表的语句,使用的方法是executeUpdate()。如:如:stat.executeUpdate(sql);/sql字符串是一条字符串是一条SQL语句语句w处理结果:处理结果:JDBC将结果集返回给ResultSet对象ResultSetrs=stat.executeQuery(sql);/sql字符串是一条SQL语句nResultSet结果集对象所包含的常用方法如下:lnext():对象rs包含了结果集中显示的表,将光标移到下一行。w光标初始定位于ResultSet对象第一行的上面w第一

14、次调用next()将光标移到第一行,使它成为当前行。接下来调用next()将使光标从上至下每次移动一行。lgetString()w常用于检索CHAR和VARCHARSQL类型的数据w也能检索其他基本SQL类型的数据例:如果用它检索numeric类型的数据,getString()将把numeric值转换成Java的String对象,这样一来,在数据要作为数字前就必须转换回numeric类型ngetXXX():适当类型的getXXX方法可用于检索列中的数值,这里的XXX指列的数据类型l检索VARCHARSQL类型数值的方法是getString()l检索float类型数值的方法是getFloat()

15、while(rs.next()/每次调用next(),下一行就成为当前行,直到rs中再也没有可向前移动的行为止Strings=rs.getString(strColumnName1);floatn=rs.getFloat(strColumnName2);/strColumnName1、strColumnName2都是sql字符串中的列名System.out.println(s+n);lJDBC使用两种方法标识getXXX方法检索数值的列w指定列名w指定列索引(列的序号),i表示第i列如:Strings=rs.getString(1);floatn=rs.getFloat(2);w与数据库连接及

16、数据基本操作的步骤与数据库连接及数据基本操作的步骤n创建数据源nimportjava.sql.*;n建立数据库连接Class.forName(sun.jdbc.odbc.JdbcOdbcDrvier);Connectioncon=DriverManager.getConnection(url,“数据库用户名”,“密码);n创建和执行JDBC语句:Statementstat=con.createStatement();n执行JDBC语句,得到处理结果ResultSetrsstat.executeQuery(sql);while(rs.next()变量名rs.get(列名或列号);n关闭连接:rs

17、.close();stat.close();con.close();【应用扩展应用扩展】w如果要发送带参数的查询语句到数据库,可以使用PreparedStatement对象,它是包含一条预编译过的SQL语句。w以下程序是带有输入参数的查询w使用预备语句使用预备语句nStatement对象是可以将简单的查询发送到数据库n发送带参数的查询语句到数据库,可以使用PreparedStatement对象l包含一条预编译过的SQL语句lDBMS不必编译就可直接运行PreparedStatement的SQL语句l代替Statement对象一般会缩短执行时间lPreparedStatement对象可用于不带参

18、数的SQL语句,但在多数场合是用于带参数的SQL语句。相关知识相关知识使用预备语句使用预备语句其用法如下:StringstrSql=UPDATECOFFEESSETSALES=?WHERECOF_NAMELIKE?;PreparedStatementstat=con.prepareStatement(strSql);stat.setInt(1,75);/给上面的SQL语句的第一个问号赋值stat.setString(2,Colombian);/给上面的SQL语句的第二个问号赋值stat.executeUpdate();/相当于执行UPDATECOFFEESSETSALES=75WHERECOF

19、_NAMELIKEColombian可用该对象制作成模板实现一次构造多条带参数的SQL语句,简化编码。executeUpdate方法的返回值方法的返回值executeQuery返回一个ResultSet对象executeUpdate返回的是一个整数值,指出了表中已更新的行数。如果executeUpdate的返回值为0表明执行的语句是一不影响任何行的更新语句执行的是一无返回内容的SQL语句,比如DLL数据定义语句SQL与与Java的数据类型SQL数据类型与Java的数据类型不一致在使用Java类型的应用程序与使用SQL类型的数据库之间,需要某种读写类型转换机制ResultSet类的“get”系列

20、方法Statement及其子类的“set”系列方法都有可能要用到数据转换25三、项目三、项目43 使用纯使用纯Java JDBC 实现与数实现与数据库的连接及更新据库的连接及更新w使用纯JavaJDBC驱动在控制台显示titles表中书的名字(title_id)书的类型(type)书的价格(price)26JDBC-ODBC桥将JDBC数据转换为ODBC数据源,然后用ODBC与数据连接,速度比较慢。纯JavaJDBC驱动程序用纯Java语言编写独立的JDBC驱动程序直接与数据连接与数据库进行通信的整个过程均由Java语言实现,而不通过桥接或中间件来存取数据库缺点:需要下载相应的类包不同数据库的

21、连接代码可能不同2.相关知识相关知识27w使用纯JavaJDBC驱动程序连接数据库n装载驱动程序l在程序中,利用Class.forName()方法加载指定的驱动程序Class.forName(com.microsoft.jdbc.sqlserver.SQLServerDriver);l注意:连接不同的数据库时,加载的驱动程序有所不同。n建立与数据库的连接1,首先创建指定数据库的URLjdbc:subProtlcol:subName:/hostname:port;DatabaseName=XXXJdbc:表示当前通过Java数据库连接进行数据库访问subProtocal:表示某种驱动程序支持的数

22、据库连接机制subName:表示在当前连接机制下的具体名称Hostname:表示主机名。port表示相应的连接端口DatabaseName:是要连接的数据库的名称。例如:Stringurl=jdbc:sqlserver:/localhost:1433;DatabaseName=pubs;/pubs为数据库名Stringuser=“sa”;/用户名Stringpassword=;/密码Connectionconn=DriverManager.getConnection(url,user,password);28应用拓展w先创建存储过程,然后用CallableStatement接口实现JDBC调用

23、存储过程29相关知识相关知识w创建存储过程创建存储过程nCallableStatement对象为所有的DBMS提供了一种以标准形式调用已储存过程的方法n下面的SQL语句可创建一个存储过程:createprocedurepublishers_titlesasselectpub_name,titlefrompublishers,titleswherepublishers.pub_id=titles.pub_idorderbytitle30w下面的代码将SQL语句放到一个字符串中,然后赋给变量createProcedure以备后用:StringcreateProcedure=”createproce

24、durepublishers_titlesasselectpub_name,titlefrompublishers,titleswherepublishers.pub_id=titles.pub_idorderbytitle”w下面的代码段使用Connection对象con来创建Statement对象,用于把创建存储过程的SQL语句发送给数据库:Statementstmt=con.createStatement();stmt.executeUpdate(createProcedure);w存储过程publishers_titles将作为一个可调用的数据库对象在数据库中编译并存储,调用时就像调用其他方法一样31w从从JDBC调用存储过程调用存储过程nJDBC允许在用Java编写的程序中调用存储过程。l创建一个CallableStatement对象。l利用一个打开的Connection对象即可完成创建。nCallableStatement对象包含了存储过程的一个调用;但它不包含存储过程本身n举例:使用连接con创建了存储过程publishers_titles的一个调用CallableStatementcs=con.prepareCall(callpublishers_titles);ResultSetrs=cs.executeQuery();

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

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

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

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com