1--(引入)上网查了下,Tomcat 6的配置和以前的不同了,不推荐在server.xml中进行配置,而是在context.xml中进行配置才是更好的方法。是自己项目目录下的“context.xml”文件,不是“tomcat_home/conf”下的。而是tomcat_home/webapps/yourApp/META-INF/context.xml下的,因为我的网站项目目录中没有context.xml,于是创建一个,这样可以在不同的网站下动态的、单独的配置连接池了,并且不需要重启Tomcat,Tomcat会自动重载。
2—由于数据源由Servlet容器创建并且维护,所以必须把JDBC驱动程序拷贝到 J:/tomcat/lib目录下,确保Servlet容器能访问驱动程序。
3--关于name="jdbc/mysql"的一致性,是META-INF/context.xml、tomcat/conf/Catalina/localhost/新生成的(也是同样为了映射)Bookstore.xml、还有下面的JSP中的lookup("java:comp/env/jdbc/Bookstore"); 这三者一定要统一
context.xml例:
<?xml version="1.0" encoding="UTF-8"?>
<Context reloadable="true" crossContext="true">
<Resource
name="jdbc/mysql" ----------注意:与下面的jsp中("java:comp/env/jdbc/mysql");一致
auth="Container" ----------该项为不变项
type="javax.sql.DataSource" ----------该项为不变项
driverClassName="com.mysql.jdbc.Driver" ----------数据库驱动名
url="jdbc:mysql://localhost:3306/bookdb?autoReconnect=true"
username="root"
password="root"
maxActive="10" ------最大连接数
maxIdle="5" --------最大空闲连接数
maxWait="-1"/> ------最大等待毫秒数,-1为无限等待
</Context>
下面进行下前台的测试:
<%@ page language="java" contentType="text/html; charset=gb2312"
pageEncoding="gb2312"%>
<%@ page import="java.util.*" %>
<%@ page import="java.io.*" %>
<%@ page import="java.sql.*" %>
<%@ page import="javax.sql.*" %>
<%@ page import="javax.naming.*" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title> DbJsp1.jsp starting page</title>
</head>
<body>
This is my JSP page. 是通过数据源访问数据库的JSP的范例
<br><br>
<%
try{
Connection conn;
Statement stmt;
ResultSet rs;
//建立连接
System.out.println("建立连接");
Context ctx = new InitialContext();//初始化Context,使用InitialContext初始化Context
/*
通过JNDI查找数据源,该JNDI为java:comp/env/jdbc/mysql,分成两个部分
java:comp/env是Tomcat固定的,Tomcat提供的JNDI绑定都必须加该前缀
jdbc/mysql是定义数据源时的数据源名(见context.xml中的Resource name="jdbc/mysql" )
*/
DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/mysql");
conn = ds.getConnection();//获取数据库连接
//创建一个JDBC声明,获取Statement
System.out.println("创建一个JDBC声明");
stmt = conn.createStatement();
rs = stmt.executeQuery("select id,name,title from books");//执行查询,返回ResulteSet对象
//查询输出的结果
System.out.println("查询输出的结果");
out.println("<table border='1' width='400'>");
while(rs.next()){
String id = rs.getString(1);
String name = rs.getString(2);
String title = rs.getString(3);
out.println("<tr><td>"+id+"</td><td>"+name+"</td><td>"+title+"</td></tr>");
}
out.println("</table>");
rs.close();
stmt.close();
conn.close();
}catch (Exception e) {
e.printStackTrace();
}
%>
</body>
</html>
网页打印出的结果:
This is my JSP page. 是通过数据源访问数据库的JSP的范例
2 | 大王 | ejb |
201 | 王芳 | java编程指南 |
202 | 李四 | weblogic技术参考 |
204 | 王五 | jsp大全 |
3 | 张三 | tomcat |
4 | 赵柳 | html |