连接池配置——Tomcat6.0/5.5+MySQL5.0+JDK1.6+MyEclipse8.0GA

来源:互联网 发布:人物头像简笔画软件 编辑:程序博客网 时间:2024/05/21 17:40

1--(引入)上网查了下,Tomcat 6的配置和以前的不同了,不推荐在server.xml中进行配置,而是在context.xml中进行配置才是更好的方法。是自己项目目录下的“context.xml”文件,不是“tomcat_home/conf”下的。而是tomcat_home/webapps/yourApp/META-INF/context.xml下的,因为我的网站项目目录中没有context.xml,于是创建一个,这样可以在不同的网站下动态的、单独的配置连接池了,并且不需要重启TomcatTomcat会自动重载。

 

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