第9章 访问数据库.ppt
《第9章 访问数据库.ppt》由会员分享,可在线阅读,更多相关《第9章 访问数据库.ppt(53页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第9章 访问数据库 9.1 JDBC 简介 9.2 建立数据库连接 9.3 执行SQL语句 9.4 使用Prepared Statement 9.5 事务处理 9.6 编写数据库工具类 9.7 一个实例 9.1 JDBC 简介-1l数据库的应用目前已经非常普遍,在应用程序的开发过程中,经常会涉及到访问数据库。Java语言为访问数据库提供了方便的技术。lJava使用JDBC(Java Database Connectivity)技术进行数据库的访问,如图9.1.1所示。使用JDBC技术进行数据库访问时,Java应用程序通过JDBC API和JDBC驱动程序管理器之间进行通信,例如Java应用程序
2、可以通过JDBC API向JDBC驱动程序管理器发送一个SQL查询语句。JDBC驱动程序管理器又可以以两种方式和最终的数据库进行通信:一是使用JDBC/ODBC桥接驱动程序的间接方式;另一是使用JDBC驱动程序的直接方式。9.1 JDBC 简介-2图9.1.1 JDBC示意图 9.1 JDBC 简介-3 JDBC所采用的这种数据库访问机制使得JDBC驱动程序管理器以及底层的数据库驱动程序对于开发人员来说是透明的。对于开发人员来说,访问不同类型的数据库时使用的是同一套JDBC API。此外,使用这种机制还有另一个重要的意义:当有新类型的数据库出现时,只要该数据库的生产厂商提供相应的JDBC驱动程
3、序,已有的Java应用程序不用做任何修改。!ODBC(!ODBC(开放式数据库连接开放式数据库连接)是一个编程接口,它允许程序访问使是一个编程接口,它允许程序访问使用用SQL(SQL(结构化查询语言结构化查询语言)作为数据访问标准的作为数据访问标准的DBMS(DBMS(数据库管理数据库管理系统系统)中的数据。中的数据。SUNSUN公司认为公司认为ODBCODBC难以掌握、使用复杂并且在安难以掌握、使用复杂并且在安全性方面存在问题,所以全性方面存在问题,所以JavaJava中没有直接采用中没有直接采用ODBC ODBC 模式。模式。9.2 建立数据库连接-1 l9.2.1 使用JDBC/ODBC
4、桥接驱动程序 l9.2.2 使用JDBC驱动程序 l9.2.3 使用配置文件 9.2 建立数据库连接-2l要想对数据库进行访问,必须先和数据库建立连接。建立一个数据库连接总是需要两个步骤:l、载入驱动程序 Class.forName(驱动程序名称);2、建立连接 Connection con=DriverManager.getConnection(url,“用户名称,用户密码);lJDBC驱动程序管理器可以以两种方式进行数据库访问:一是使用JDBC/ODBC桥接驱动程序;另一种方式是使用JDBC驱动程序直接和数据库连接。下面将使用两个实例来分别讲解如何使用这两种方式进行数据库访问。l!不同的驱
5、动程序,驱动程序名称以及子协议名称是可以不一样的。不同的驱动程序,驱动程序名称以及子协议名称是可以不一样的。在随驱动程序提供的文档中能够找到具体使用方法。在随驱动程序提供的文档中能够找到具体使用方法。9.2.1 使用JDBC/ODBC桥接驱动程序 使用MS Access建立一个名为bookTest.mdb的数据库,该数据库中有一张表bookInfo,该表的的字段名称、数据类型和字段含义参见教材表9.2.1。使用ODBC管理工具为bookTest.mdb的建立一个名为Book的数据源。设定好访问该数据源的用户名称和密码(本例中分别设定为admin 和 xyz)。(1)载入驱动程序 l使用JDBC
6、/ODBC桥接驱动程序,该驱动程序的名称为“sun.jdbc.odbc.JdbcOdbcDriver”,使用下面的语句将载入JDBC/ODBC桥接驱动程序:Class.forName(sun.jdbc.odbc.JdbcOdbcDriver);(2)建立连接 l使用下面的语句建立一个和数据库的连接:Connection con=DriverManager.getConnection(jdbc:odbc:Book,admin,xyz);JDBC/ODBC桥连接Access的硬件设置打开控制面板,选中管理工具。如图JDBC/ODBC桥连接Access的硬件设置l打开管理工具,选中(ODBC)数据源
7、JDBC/ODBC桥连接Access的硬件设置l打开数据源管理器,选择系统DNS,并单击添加按钮。JDBC/ODBC桥连接Access的硬件设置l选中Driver do Microsoft Access (*mdb)JDBC/ODBC桥连接Access的硬件设置l在ODBC Microsoft Access安装界面中,填写数据源(如Book),并选择数据库,选好过后如图单击确定,不完成了设置。JDBC/ODBC桥连接SQL的硬件设置l在创建数据源界面中,选择SQL Server并单击完成按钮。JDBC/ODBC桥连接SQL的硬件设置l在创建到SQL Server的数据源界面中,命名数据源(如b
8、ook),注意:服务器后一定要选择LocalJDBC/ODBC桥连接SQL的硬件设置l在创建SQL Server的新数据源中选择如下图JDBC/ODBC桥连接SQL的硬件设置l在创建到SQL Server的新数据源界面中选择所需数据库(如BookTest)单击下一步如图JDBC/ODBC桥连接SQL的硬件设置l在创建到SQL Server的新数据源界面中设置如下,单击完成JDBC/ODBC桥连接SQL的硬件设置l在ODBC Microsoft SQL Server安装界面中单击测试数据源按钮,如果出现右图测试成功界面,则单击完成结束设置例9.2.1 JdbcOdbc.javaimport ja
9、va.sql.*;public class JdbcOdbc public static void main(String args)tryClass.forName(sun.jdbc.odbc.JdbcOdbcDriver);Connection con=DriverManager.getConnection(jdbc:odbc:Book,admin,abc);Statement stmt=con.createStatement();ResultSet rs=stmt.executeQuery(select*from bookInfo);while(rs.next()System.out.p
10、rintln(rs.getString(1)+rs.getString(2)+rs.getFloat(3)+rs.getString(4);rs.close();stmt.close();catch(Exception e)e.printStackTrace();9.2.2 使用JDBC驱动程序-1 本小节介绍如何使用JDBC驱动程序直接和运行在MS SQLSERVER 2000服务器上的数据库建立连接 9.2.2 使用JDBC驱动程序-2l这里使用一个MS SQLSERVER 2000上的数据库作为例子。先在MS SQLSERVER 2000上建立一个名为BookTest的数据库,并且在该数
11、据库中创建一个名为bookInfo的表。表bookInfo的字段名、数据类型及字段含义见表9.2.2。使用企业管理器为该数据库创建一个合法的用户,用户名为admin,密码为xyz。l下载并安装MS SQLSERVER 2000的JDBC驱动程序。在安装目录的lib子目录中,会发现有三个.jar文件(msbase.jar、mssqlserver.jar 及msutil.jar),就是MS SQLSERVER 2000的JDBC驱动程序。注意:要使得Java应用程序能够访问MS SQLSERVER 2000上的数据库,必须使得在类路径中能够找到这三个.jar文件。您可以在环境变量中设置好CLASS
12、PATH;或是更简单一点,直接将这三个.jar文件解压缩到应用程序所在的目录。(1)载入驱动程序 MS SQLSERVER 2000 JDBC驱动程序的名称为(参看该驱动程序安装目录下的文档)“com.microsoft.jdbc.sqlserver.SQLServerDriver”。使用下面的语句将载入MS SQLSERVER 2000 JDBC驱动程序:Class.forName(com.microsoft.jdbc.sqlserver.SQLServerDriver);(2)建立连接 使用下面的语句建立一个和数据库的连接:String url=jdbc:microsoft:sqlserv
13、er:/127.0.0.1:1433;Connection con=DriverManager.getConnection(url,admin,xyz);con.setCatalog(bookTest);本例中使用JDBC驱动程序直接和数据库服务器建立连接,url子协议的书写方式与上例中有所不同(参看随驱动程序提供的帮助文档)。例9.2.2完整显示了使用JDBC驱动程序直接访问MS SQL SERVER 2000数据库的源代码,完成和例9.2.1相似的功能。例例9.2.2 Jdbc.java limport java.sql.*;lpublic class Jdbcl public stati
14、c void main(String args)l tryl Class.forName(com.microsoft.jdbc.sqlserver.SQLServerDriver);l String url=jdbc:microsoft:sqlserver:/127.0.0.1:1433;l Connection con=DriverManager.getConnection(url,admin,xyz);l con.setCatalog(bookTest);l Statement stmt=con.createStatement();l ResultSet rs=stmt.executeQu
15、ery(select*from bookInfo);l while(rs.next()lSystem.out.println(rs.getString(1)+rs.getString(2)+rs.getFloat(3)+rs.getString(4);l l rs.close();l stmt.close();l catch(Exception e)l e.printStackTrace();l l 9.2.3 使用配置文件 使用JDBC的一个优点就是:数据库编程独立于平台和数据库类型。也就是数据库类型改变后,访问数据的代码不需要改变(数据库驱动程序名称和数据库url需要做相应的变动)。在例9
16、.2.1和9.2.2,驱动程序名称和数据库url都已经被“硬”编码到应用程序中。一旦所访问的数据库类型改变后,必须修改程序中的驱动程序名称和数据库url,重新编译后才能运行。这对于应用程序的用户是不能接受的,另一方面也削减了JDBC数据库编程独立于数据库类型的优点。可以通过使用配置文件来解决这个问题:提供一个设置界面,用户可以在该界面中指定驱动程序的名称以及数据库url,并将结果保存到一个配置文件中。应用程序进行数据库连接时使用配置文件中的信息,这样可以提高应用程序的灵活性。9.2.3 使用配置文件l为了简单起见,这里的例子只演示了如何从配置文件中读取信息。在第11章的项目实例中演示了如何完整
17、地读写配置文件。l在应用程序所在的目录中创建一个配置文件db.cfg,该文件中的内容为:dbDriver=com.microsoft.jdbc.sqlserver.SQLServerDriver dbIP=127.0.0.1 dbPort=1433 dbUserName=admin dbPassword=xyz defaultDbName=bookTest9.2.3 使用配置文件l Java语言中提供了一个类java.util.Properties,该类中提供了load()方法可以从输入流中读入属性值。下面的语句从配置文件db.cfg中读入配置信息存放到对象prop中:Properties p
18、rop=new Properties();prop.load(new FileInputStream(db.cfg);l从配置文件中读入的配置信息是以(关键字,属性值)对的形式存放在对象prop中的。例如要取得关键字dbDriver的属性值,使用getProperty()方法:String driver=prop.getProperty(dbDriver);这时候driver中的值为“com.microsoft.jdbc.sqlserver.SQLServerDriver”。l!为了提高应用程序的安全性,可以对配置文件中的用户名和用户为了提高应用程序的安全性,可以对配置文件中的用户名和用户密码
19、进行加密操作。密码进行加密操作。9.3 执行SQL语句 l和数据库建立连接的目的是为了让应用程序能够和数据库进行交互。首先使用连接对象中createStatement()方法创建一个Statement对象,然后就可以通过Statement对象向数据库发送各种SQL语句了。l Statement类型的对象中提供了几种不同的执行SQL语句的方法,如:executeUpdate(SQL)、executeQuery(SQL)、execute(SQL)以及executeBatch()9.3.1 executeUpdate lexecuteUpdate(SQL)方法用来执行那些会修改数据库的SQL语句,例
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第9章 访问数据库 访问 数据库
限制150内