当前位置:天才代写 > tutorial > JAVA 教程 > 图解Tomcat5.0下设置数据库毗连池

图解Tomcat5.0下设置数据库毗连池

2017-11-11 08:00 星期六 所属: JAVA 教程 浏览:266

副标题#e#

1.设置说明

Tomcat5.0

Eclipse3.3+MyEclipse6.0

Mysql5

mysql-connector-java-3.1.12

2.新建web工程

[1]New Project-Web Project-取名为ConnectorPool

图解Tomcat5.0下配置数据库毗邻池

[2]将mysql-connector-java-3.1.12加到%TOMCAT_HOME%/common/lib下。

[3]陈设测试该工程。

在地点栏输入http://127.0.0.1:8080/ConnectorPool/,将获得默认的 index.jsp。说明陈设乐成。

3.设置Tomcat Admin

启动Tomcat,会见http://127.0.0.1:8080/admin/,输入用户名和暗码,即可 进入打点界面。用户名和暗码可在%Tomcat _HOME%/conf/ tomcat-users.xml中 找到。

左边的菜单栏时有Tomcat Server,Resources,User Definition。留意,不要 在Resource中设置数据源,这是设置全局的数据源。

进入Tomcat Server->Service(Catalina)->Host(loalhost),就能找 到适才陈设的工程->Context(/ConnecterPool)。

图解Tomcat5.0下配置数据库毗邻池

再打开该子树,打开Resources->Data Sources,这里就是针对某个详细 Context的DataSource了。

图解Tomcat5.0下配置数据库毗邻池


#p#副标题#e#

Create New Data Source

①JNDI Name:jdbc/testpool //配置毗连池的JNDI名;

②Data Source URL:jdbc:mysql://localhost:3306/conpool //数据库毗连 字串,forpool为数据库名;

③JDBC Driver Class: com.mysql.jdbc.Driver //数据库毗连类 ;

④User Name:root //数据库毗连时的用户名;

⑤Password:**** //数据库毗连时的暗码;

⑥以下默认设置。

图解Tomcat5.0下配置数据库毗邻池

点击Save,设置完成(一般不需要重启tomcat)。

4.设置项目中/WEB-INF/web.xml

<resource-ref>
   <description>DB Connection</description>
   <res-ref-name>jdbc/testpool</res-ref-name>
   <res-type>javax.sql.DataSource</res-type>
   <res-auth>Container</res-auth>
   <res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>

5.设置完成,在java文件中利用数据库毗连池

import javax.naming.InitialContext;
import javax.sql.DataSource;
InitialContext ctx=new InitialContext();
DataSource dataSource=(DataSource)ctx.lookup ("java:comp/env/jdbc/testpool");
Connection con=dataSource.getConnection();

通过这段代码。即可完成数据库毗连。下面给出一个详细的测试例。

6.测试

6.1 测试用的数据库

[1]数据库名conpool(对Data Source URL:jdbc:mysql://localhost:3306/conpool )

[2]表名test

[3]字段名 id [varchar(12) ,notnull] [4]表中数据

id

001

002

003

#p#副标题#e#

6.2测试用的代码test.jsp

<%@ page language="java" contentType="text/html; charset=GB18030"
   pageEncoding="GB18030"%>
<%@ page import="java.sql.*"%>
<%@ page import="javax.sql.*"%>
<%@ page import="javax.naming.*"%>
<%@ page session="false"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
   <head>
    <meta http-equiv="Content-Type" content="text/html; charset=GB18030">
    <title>test for DB connection</title>
    <%
      out.print("beginning testing...");
      out.print("<br>");
      DataSource ds = null;
      try {
        InitialContext ctx = new InitialContext();
        ds = (DataSource) ctx.lookup ("java:comp/env/jdbc/testpool");
        Connection conn = ds.getConnection();
        Statement stmt = conn.createStatement();
        // test是数据库已有的表,
        //这里的数据库是前文提及的Data Source URL设置里包括的 数据库。
        String strSql = " select * from test";
        ResultSet rs = stmt.executeQuery(strSql);
        while (rs.next()) {
          out.print(rs.getString(1));
        }
        out.print("<br>");
        out.print("end testing.");
      } catch (Exception ex) {
        out.print("error:" + ex.getMessage());
        ex.printStackTrace();
      }
    %>
   </head>
   <body>
   </body>
</html>

6.3测试功效

图解Tomcat5.0下配置数据库毗邻池

#p#副标题#e#

7.查询设置文件

编译后,%TOMCAT_HOME%/conf/Catalina/localhost/目次下有个 ConnectorPool.xml,其内容为:

#p#分页标题#e#

<?xml version='1.0' encoding='utf-8'?>
<Context docBase="ConnectorPool" path="/ConnectorPool"
workDir="work\Catalina\localhost\ConnectorPool">
  <Resource auth="Container" description="DB Connection" name="jdbc/testpool" type="javax.sql.DataSource"/>
  <ResourceParams name="jdbc/testpool">
   <parameter>
    <name>maxWait</name>
    <value>5000</value>
   </parameter>
   <parameter>
    <name>maxActive</name>
    <value>4</value>
   </parameter>
   <parameter>
    <name>password</name>
    <value>root</value>
   </parameter>
   <parameter>
    <name>url</name>
    <value>jdbc:mysql://localhost:3306/conpool</value>
   </parameter>
   <parameter>
    <name>driverClassName</name>
    <value>com.mysql.jdbc.Driver</value>
   </parameter>
   <parameter>
    <name>maxIdle</name>
    <value>2</value>
   </parameter>
   <parameter>
    <name>username</name>
    <value>root</value>
   </parameter>
  </ResourceParams>
</Context>

参数说明:

driveClassName:JDBC驱动类的完整的名称;

maxActive:同时可以或许从毗连池中被分派的可用实例的最大数;

maxIdle:可以同时闲置在毗连池中的毗连的最大数;

maxWait:最大超时时间,以毫秒计;

password:用户暗码;

url:到JDBC的URL毗连;

user:用户名称;

validationQuery:用来查询池中空闲的毗连。

本文出自 “子 孑” 博客,请务必保存此出处 http://zhangjunhd.blog.51cto.com/113473/51938

 

    关键字:

天才代写-代写联系方式