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

上传人:上海哈登 文档编号:2850221 上传时间:2019-05-28 格式:PPT 页数:31 大小:1.06MB
返回 下载 相关 举报
2019与数据库的连接及数据的基本操作.ppt_第1页
第1页 / 共31页
2019与数据库的连接及数据的基本操作.ppt_第2页
第2页 / 共31页
2019与数据库的连接及数据的基本操作.ppt_第3页
第3页 / 共31页
2019与数据库的连接及数据的基本操作.ppt_第4页
第4页 / 共31页
2019与数据库的连接及数据的基本操作.ppt_第5页
第5页 / 共31页
点击查看更多>>
资源描述

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

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

2、一组用Java编程语言编写的类和接口组成,是一种可用于执行SQL语句的Java API 在java.sql包中定义 JDBC API 中定义的主要类 数据库驱动程序管理器类DriverManager 在用户程序和数据库系统之间维护着与数据库驱动程序之间的连接 实现驱动程序的装载 创建与数据库系统连接的Connection类对象,Driver:每个驱动程序类必须实现的接口,类Connection用于管理到指定数据库的连接,8,Statement 用于执行静态 SQL 语句并返回它所生成结果的对象 resultSetType - 结果集类型,包括: TYPE_FORWARD_ONLY 1003 指

3、针只能向前移动 TYPE_SCROLL_INSENSITIVE 1004 指针可滚动但通常不受其他的更改影响 TYPE_SCROLL_SENSITIVE 1005 指针可滚动并且通常受其他的更改影响 resultSetConcurrency - 结果集的并发性,包括 CONCUR_READ_ONLY 1007 不可以更新 CONCUR_UPDATABLE 1008 可以更新 使用返回的 Statement 对象创建的结果集在默认情况下类型为 TYPE_FORWARD_ONLY,并带有 CONCUR_READ_ONLY 并发级别,接口 DatabaseMetaData(数据库元数据) 关于数据库

4、的整体综合信息,元数据:描述数据及其环境的数据 能提供基于用户的信息 能支持系统对数据的管理和维护,CallableStatement:用于执行 SQL 存储过程的接口 PreparedStatement:表示预编译的 SQL 语句的对象,11,JDBC访问数据库的两种方式 利用数据库产品的面向ODBC驱动程序,在JDBC和ODBC之间建立JDBC- ODBC桥,在Java程序中基于JDBC- ODBC桥的方式访问数据库 基于特定数据库产品的JDBC驱动程序,在Java应用程序中利用JDBC数据驱动程序直接与数据库连接,建立数据库连接 首先必须通过java.lang.Class类的forNam

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

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

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

8、executeUpdate(sql); /sql字符串是一条SQL语句,处理结果:JDBC将结果集返回给ResultSet对象 ResultSet rs = stat.executeQuery(sql); /sql字符串是一条SQL语句 ResultSet结果集对象所包含的常用方法如下: next():对象rs包含了结果集中显示的表,将光标移到下一行。 光标初始定位于ResultSet对象第一行的上面 第一次调用next()将光标移到第一行,使它成为当前行。接下来调用next()将使光标从上至下每次移动一行。 getString() 常用于检索CHAR和VARCHAR SQL类型的数据 也能检

9、索其他基本SQL类型的数据 例:如果用它检索numeric类型的数据,getString()将把numeric值转换成Java的String对象,这样一来,在数据要作为数字前就必须转换回numeric类型,getXXX():适当类型的getXXX方法可用于检索列中的数值,这里的XXX指列的数据类型 检索VARCHAR SQL类型数值的方法是getString() 检索float类型数值的方法是getFloat() while (rs.next() /每次调用next(),下一行就成为当前行,直到rs中再也没有可向前移动的行为止 String s = rs.getString(strColumn

10、Name1 ); float n = rs.getFloat(strColumnName2); / strColumnName1、 strColumnName2都是sql字符串中的列名 System.out.println(s + “ “ + n); JDBC使用两种方法标识getXXX方法检索数值的列 指定列名 指定列索引(列的序号),i表示第i列 如:String s = rs.getString(1); float n = rs.getFloat(2);,与数据库连接及数据基本操作的步骤 创建数据源 import java.sql.*; 建立数据库连接 Class.forName(“su

11、n.jdbc.odbc.JdbcOdbcDrvier“); Connection con = DriverManager.getConnection (url,“数据库用户名”, “密码“); 创建和执行JDBC语句:Statement stat = con.createStatement(); 执行JDBC语句,得到处理结果 ResultSet rsstat.executeQuery (sql); while (rs.next() 变量名rs.get(列名或列号); 关闭连接: rs.close(); stat.close(); con.close();,【应用扩展】,如果要发送带参数的查询

12、语句到数据库,可以使用PreparedStatement对象,它是包含一条预编译过的SQL语句。 以下程序是带有输入参数的查询,使用预备语句 Statement对象是可以将简单的查询发送到数据库 发送带参数的查询语句到数据库,可以使用PreparedStatement对象 包含一条预编译过的SQL语句 DBMS不必编译就可直接运行PreparedStatement的SQL语句 代替Statement对象一般会缩短执行时间 PreparedStatement对象可用于不带参数的SQL语句,但在多数场合是用于带参数的SQL语句。,相关知识,使用预备语句其用法如下: String strSql=“U

13、PDATE COFFEES SET SALES = ? WHERE COF_NAME LIKE ?“; PreparedStatement stat = con.prepareStatement(strSql); stat.setInt(1, 75);/给上面的SQL语句的第一个问号赋值 stat.setString(2, “Colombian“);/给上面的SQL语句的第二个问号赋值 stat.executeUpdate();/相当于执行UPDATE COFFEES SET SALES = 75 WHERE COF_NAME LIKE Colombian 可用该对象制作成模板实现一次构造多条

14、带参数的SQL语句,简化编码。,executeUpdate方法的返回值 executeQuery返回一个ResultSet对象 executeUpdate返回的是一个整数值,指出了表中已更新的行数。如果executeUpdate的返回值为0表明 执行的语句是一不影响任何行的更新语句 执行的是一无返回内容的 SQL 语句,比如DLL 数据定义语句 SQL与Java的数据类型 SQL数据类型与Java的数据类型不一致 在使用Java类型的应用程序与使用SQL类型的数据库之间,需要某种读写类型转换机制 ResultSet类的“get”系列方法 Statement及其子类的“set”系列方法 都有可能

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

16、序连接数据库 装载驱动程序 在程序中,利用Class.forName()方法加载指定的驱动程序 Class.forName(“com.microsoft.jdbc.sqlserver.SQLServerDriver“); 注意:连接不同的数据库时,加载的驱动程序有所不同。 建立与数据库的连接 1,首先创建指定数据库的URL jdbc:subProtlcol:subName:/hostname:port;DatabaseName=XXX Jdbc:表示当前通过Java数据库连接进行数据库访问 subProtocal:表示某种驱动程序支持的数据库连接机制 subName:表示在当前连接机制下的具体

17、名称 Hostname:表示主机名。port表示相应的连接端口 DatabaseName:是要连接的数据库的名称。例如: String url=“jdbc: sqlserver:/localhost:1433;DatabaseName=pubs“; /pubs为数据库名 String user=“sa”; /用户名 String password=“; /密码 Connection conn= DriverManager.getConnection(url,user,password);,28,应用拓展,先创建存储过程,然后用CallableStatement接口实现JDBC调用存储过程,29

18、,相关知识,创建存储过程 CallableStatement 对象为所有的 DBMS 提供了一种以标准形式调用已储存过程的方法 下面的SQL语句可创建一个存储过程: create procedure publishers_titles as select pub_name,title from publishers,titles where publishers.pub_id=titles.pub_id order by title,30,下面的代码将SQL语句放到一个字符串中,然后赋给变量createProcedure以备后用: String createProcedure =” creat

19、e procedure publishers_titles as select pub_name,title from publishers,titles where publishers.pub_id=titles.pub_id order by title” 下面的代码段使用Connection对象con来创建Statement对象,用于把创建存储过程的SQL语句发送给数据库: Statement stmt = con.createStatement(); stmt.executeUpdate(createProcedure); 存储过程publishers_titles将作为一个可调用的

20、数据库对象在数据库中编译并存储,调用时就像调用其他方法一样,31,从JDBC调用存储过程 JDBC允许在用Java编写的程序中调用存储过程。 创建一个CallableStatement对象。 利用一个打开的Connection对象即可完成创建。 CallableStatement对象包含了存储过程的一个调用;但它不包含存储过程本身 举例:使用连接con创建了存储过程publishers_titles的一个调用 CallableStatement cs = con.prepareCall(“call publishers_titles “); ResultSet rs = cs.executeQuery();,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1