web第8章 访问数据库

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第8章访问数据库教学目标*掌握JDBC的基本结构和工作机制。*掌握JDBC连接数据库的基本步骤。*会利用JDBC检索和更新数据库数据。*会利用JDBC进行参数化查询和调用存储过程。8.1JDBC简介•JDBC允许Applet、Servlet、JSP、Application等各种形式的Java应用以相同的形式访问数据库。JDBC访问数据库使用的语言是标准的SQL语言,这样Java应用程序就可以利用一个简单的、标准的API(JDBCAPI)建立连接,而不用考虑数据库平台的类型。JDBC的构成:•JDBCAPI函数,纯Java的API接口。•JDBC驱动程序的管理器,负责与厂商提供的驱动程序通讯。驱动程序负责与数据库通讯。因此在数据库系统的客户端需要安装驱动程序,服务器端无需变动。JavaApplicationJDBC驱动程序管理器(DriverManager)JDBC-ODBC桥厂商提供的JDBC驱动程序(JDBCDriver)厂商提供的ODBC驱动程序DatabaseDatabaseJDBCAPIJDBCDriverAPI使用JDBC的基本步骤1.装载驱动器2.定义连接url3.建立连接4.创建statement对象5.执行查询6.处理结果7.关闭连接装载选用数据库的JDBC驱动器•装载并注册数据库的JDBC驱动程序,其中JDBC-ODBCDriver是在JDK中自带的,默认已经注册。下面代码分别装载并注册SQLServer、Oracle、MySQL驱动程序1.Class.forName(“com.microsoft.jdbc.sqlserver,SQLServerDriver”);或者对于SQLServer2005express是Class.forName(“com.microsoft.sqlserver.jdbc.SQLServerDriver”);java.sql.DriverManager.registerDriver(newcom.microsoft.jdbc.sqlserver,SQLServerDriver());2.Class.forName(“oracle.jdbc.driver.OracleDriver”);java.sql.DrvierManager.registerDriver(neworacle.jdbc.driver.OracleDriver());3.Class.forName(“com.mysql.jdbc.Driver”);java.sql.DrvierManager.registerDriver(newcom.mysql.jdbc.Driver());连接url1.JDBCURL的一般形式:jdbc:drivertype:driverSubtype://parameters2.常用的数据库的JDBCURL形式•对于JDBC-ODBCDriver连接数据库:jdbc:odbc:datasource•对于Oracle数据库连接:jdbc:oracle:thin:@localhost:1521:sid•对于SQLServer数据库连接:jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=datasource;•对于SQLServer2005express数据库连接:jdbc:sqlserver://localhost\\SQLEXPRESS;user=sa;password=sa;Database=数据库名;•对于MySQL数据库连接:jdbc:mysql://localhost:3306/datasource建立与数据库的连接Connectioncon=java.sql.DriverManager.getConnection(dburl,user,password);创建Statement对象Statementstatement=connection.createStatement();通过Statement对象,SQL语句被送到数据库.有三种statement对象•Statement:执行简单的SQL语句。•PreparedStatement:执行预编译的带参数的SQL语句。•CallableStatement:执行数据库的存储过程。调用SQL语句•excuteQuery方法:–执行查询语句,返回数据表中的数据。–结果集可以为空,但是不会为NullStringquery=SELECTcol1,col2,col3FROMsometable;ResultSetresultSet=statement.executeQuery(query);•executeUpdate方法:–用来执行UPDATE,INSERT,或DELETE语句–返回值是受影响的行数。例:introws=statement.executeUpdate(DELETEFROMEMPLOYEES+WHERESTATUS=0);访问ResultSet中的记录集•处理记录集while(resultSet.next()){System.out.println(resultSet.getString(1)++resultSet.getString(2)++resultSet.getString(3));}注:1.第一列数据的索引是1,不是02.ResultSet提供各种getXXX方法,根据列的索引或列名获取数据例子:在控制面板里增加一个SystemDNS,命名为northwind,选用Server为localhost\sqlexpress。BasicJDBC.javaBasicJDBC.jsp8.4参数化数据库查询和数据库更新很多情况下的SQL语句中的一些条件或数值只有在运行时才会知道。这时就会用到Statement接口的一个子接口:PreparedStatement接口。例子:PreparedStatement对象来实现:PrepareStatementstmt=conn.prepareStatement(selectLastName,FirstNamefromemployeeswherecity=?Andsalary?);stmt.setString(1,London);stmt.setDouble(2,5000);ResultSetrs=stmt.executeQuery();数据源(DataSource)•JDBC2.0提供javax.sql.DataSource接口,负责建立与数据库的连接,在应用程序中访问数据库时不必编写连接数据库的代码,可以直接从数据源获得数据库连接。•原理:在DataSource中事先建立多个数据库连接,并保存在连接池中。Java程序访问数据库时,只需从连接池中取出空闲状态的数据库连接;访问数据库结束,连接又放回连接池,这样提高访问数据库的效率。•数据源和JNDI资源:JNDI是一种将对象和名字绑定的技术,对象工厂生产出对象,并与唯一的名字绑定,外部程序通过名字获得这个对象的引用。DataSource对象由Tomcat创建,需要用JNDI来获取其引用。•Javax.naming.Context接口,提供–bind(Stringname,Objectobject):将对象与一个名字绑定。–lookup(Stringname):返回与指定名字绑定的对象。配置数据源•在server.xml中GlobalNamingResources元素里加入定义数据源的元素Resource/,则成为服务器中所有应用程序共享的一个资源。•在web.xml中加入resoure-ref元素,声明该Web应用所引用的数据源。而且要在context.xml中加入ResourceLink/引用该资源。•Server.xml的相关定义:GlobalNamingResourcesResourcename=jdbc/northwindauth=Containertype=javax.sql.DataSourceusername=sapassword=sadriverClassName=sun.jdbc.odbc.JdbcOdbcDriverurl=jdbc:odbc:northwindmaxActive=8maxIdle=4//GlobalNamingResources•Web.xml中的相关定义:resource-refdescriptionDBConnection/descriptionres-ref-namejdbc/northwind/res-ref-nameres-typejavax.sql.DataSource/res-typeres-authContainer/res-auth/resource-ref在context.xml中在context元素中加入ResourceLinkglobal=jdbc/northwindname=jdbc/northwindtype=javax.sql.DataSource/程序中访问数据源•获取数据源的引用Contextctx=newInitialContext();DataSourceds=(DataSource)ctx.lookup(“java:comp/env/jdbc/northwind”);获取数据库连接对象ConnectionConnectioncon=ds.getConnection();详见DataSourceJDBC.jsp和server.xml,web.xml,context.xml文件。

1 / 25
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功