《JSP笔记》之七
第九章 JSP中使用数据库
(结果集的游标操作在第22页)
在本章中,我们使用SQL Server 2000数据库管理系统。特别约定,建立新的数据库名为:student,在其下创建表:表1:student;表2:login 。 §9.1 SQL语言简介 见教材 §9.2 JDBC简介 JDBC是Java数据库连接API,它由一些Java类和接口组成。在JSP中可以使用JDBC实现对数据库中表记录的查询、修改、插入和删除等操作。JDBC技术在JSP开发中占有很重要的地位。经常使用JDBC进行如下操作:
1.与一个数据库建立连接
2.向已连接的数据库发送SQL语句 3.处理SQL语句返回的结果 §9.3 数据库连接的常用方式 应用程序必须首先与数据库建立连接。本节介绍常用的两种连接方式:建立JDBC-ODBC桥接器和加载纯Java数据库驱动程序。 §9.3.1 JDBC-ODBC桥接器 使用JDBC-ODBC桥接器方式与数据库建立连接,要经过:创建ODBC数据源――>建立JDBC-ODBC桥接器――>和ODBC数据源指定的数据库建立连接 共3个步骤。 1.创建ODBC数据源:步骤见教材,这里规定:数据源名:student,数据库名:student, 用户名:sa 密码:空或sa。 2.建立JDBC-ODBC桥接器 为了连接student数据源的student数据库,首先要建立一个JDBC-ODBC桥接器: Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”); 这里,Class是包java.lang中的一个类,该类通过调用它的静态方法forName加载sun.jdbc.odbc包中的JdbcOdbcDriver类来建立JDBC-ODBC桥接器。 建立桥接器时可能发生异常,因此捕获这个异常。所以建立桥接器的标准语句是: try{ Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”); } Catch(ClassNotFoundException e){
out.println(e) }
3.与ODBC数据源指定的数据库建立连接 编写连接数据库的Java代码不会出现数据库的名称,只能出现数据源的名字。先使用java.sql包中的Connection类声明一个连接对象,然后再使用类DriverManager调用它的静态方法getConnection创建这个对象: Connection con=DriverMagager.getConnection(“jdbc:odbc:数据源名字”,”login name”,”password”); 其中login name 和 password 是建立数据源时所使用的用户名和密码。 建立连接时应捕获SQLException异常: try{ Connection con=DriverManager.getConnection(“jdbc:odbc:student”,”sa”,””);
} catch(SQLException e){ out.println(e); } 这样就与数据源student建立了连接。应用程序一旦与某个数据源建立连接,就可以通过SQL语句与该数据源所指定的数据库中的表交互信息,如查询、修改、更新表中的记录。 下例中是一个简单的JSP页面,该页面中的Java程序片代码负责连接到数据源student,查询该数据源中的数据库student中的表student的全部记录。
例1 用JDBC-ODBC连接数据库,并显示表student中的全部记录。 chap9-1(odbc).jsp <%@ page contentType=\<%@ page import=\
<%Connection con; Statement sql; ResultSet rs; try{
Class.forName(\ }
catch(ClassNotFoundException e){ out.println(e);
}
try {
con=DriverManager.getConnection(\ sql=con.createStatement();
rs=sql.executeQuery(\%>
| <% while(rs.next()){ %>
<% }%> |
---|
<% con.close(); }
catch(SQLException e1) {} %>
执行后,效果如下图: 9.3.2 使用纯Java数据库驱动程序方式实现连接 用Java语言编写的驱动程序称为纯Java驱动程序。简单地说,JDBC可以调用本地的纯Java驱动程序和相应的数据库建立连接。 这种连接数据库方式要经过2个步骤:加载纯Java驱动程序->与指定的数据库连接。 1.加载纯Java驱动程序: 这种方式下不需要设置数据源,由于不依赖于ODBC,使得应用程序具有很好的移植性。目前,许多数据库厂商都提供了自己的相应的纯Java驱动程序。当使用纯Java驱动程序访问数据库时,必须要保证在连接数据库的应用程序所驻留的计算机上安装相应DBMS提供的纯Java驱动程序。比如,Tomcat服务器上的某个Web应用程序想访问SQKServer2000数据库管理系统所管理的数据库,Tomcat服务器所驻留的计算机上必须要安装SQLServer 2000提供的纯Java驱动程序。 我们这里,使用的是MS SQL Server 2000数据库管理系统。所以需要把该厂商提供的jar包:mssqlserver.jar、msutil.jar、msbase.jar挎贝到Java的jre\\lib\\ext中,或复制到Tomcat服务器安装目录的文件夹的common\\lib中。或是把MySQL所用的jar包(mysql-connector-java-5.0.8-bin.jar)装入工程名\\WebRoot\\WEB-INF\\lib下。
准备好了后,加载纯Java驱动程序: try{ Class.forName(“com.microsoft.jdbc.sqlserver.SQLServerDriver”).newInstance(); }
catch(Exception e){ out.println(e); }
2.和指定的数据库建立连接 假设应用程序要与SQL Server 数据库服务器管理的数据库student建立连接,而有权访
问数据库student的用户的id和密码分别是sa、sa,那么建立连接的代码如下: try{ String url=”jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=student”; String user=”sa”; String password=”sa”; con=DriverManager.getConnection(url,user,password); } catch(SQLException e){ out.println(e); } 下面的例子是采用纯Java数据库驱动程序方式来实现上一个例题的例子。 例2 使用纯Java数据库驱动方式显示表中的全部记录(注意非红色字体) chap9-2(jdbc).jsp <%@ page contentType=\<%@ page import=\<%@ page import=\
<% Connection con; Statement sql; ResultSet rs; try{ Class.forName(\ } catch(Exception e){ out.print(e); out.print(\ } try{ String url; url=\ String user=\root\ String password=\root\ con=DriverManager.getConnection(url,user,password); sql=con.createStatement(); rs=sql.executeQuery(\%>
|
---|