随笔-244  评论-80  文章-1  trackbacks-3
  2007年8月28日

我已经成功配置了,各位高手可能有其他的配置方案或者步骤,比我的简洁、有效;我这只是个简单的演示,希望大家发现问题后能给我指点一下哈~我的邮件:patriotlml@gmail.com

我用的是mysql5.0+tomcat5.5XX,步骤如下:
第一:下载MySQL的JDBC驱动,拷贝至$TOMCAT_HOME/common/lib/目录下
第二:配置Tomcat数据源(注意:tomcat5和tomcat5.5数据源配置是有差异的,此处为5.5的)
      修改$TOMCAT_HOME/conf/server.xml,在</Host>前加上:


      <Context path="/yourapp" docBase="yourapp"
         debug= "99" reloadable="true" crossContext="true" verbosity="DEBUG">
        <Resource name="jdbc/yourresourcename" auth="Container"
                  type="javax.sql.DataSource" password="admin"
                  driverClassName="com.mysql.jdbc.Driver"
                  maxIdle="2"
                  maxWait="5000"
                  username="root"
                  url="jdbc:mysql://localhost:3306/yourdatabase?autoReconnect=true"
                  maxActive="4"/>
     </Context>

   注意,在每个web应用中都要在server.xml中定义此webapp的Resource.
   其中各项的意义见附注。
第三:声明你的资源引用
     这里我们为JDBC数据源建立的JNDI资源名为“jdbc/exam”,需要在web应用部署描述文件web.xml中     添加资源声明:


     <resource-ref>
         <description>
           Resource reference to a factory for java.sql.Connection
           instances that may be used for talking to a particular
           database that is configured in the server.xml file.
         </description>
         <res-ref-name>
           jdbc/exam
         </res-ref-name>
         <res-type>
           javax.sql.DataSource
         </res-type>
         <res-auth>
           Container
         </res-auth>
    </resource-ref>


第四:使用
Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");
DataSource ds = (DataSource)envCtx.lookup("jdbc/exam");
Connection conn = ds.getConnection();
... use this connection to access the database ...
conn.close();//
这里并不是真正的关闭,而是释放到数据库连接池中

注意:Tomcat5.5不支持ConnectionPoolDataSource接口。
第五: 参考
* http://tomcat.apache.org/tomcat-5.5-doc/jndi-resources-howto.html


附注如下:

Tomcat标准数据源资源工厂配置项如下:
* driverClassName - 所使用的JDBC驱动类全称。
* maxActive - 同一时刻可以自数据库连接池中被分配的最大活动实例数。
* maxIdle - 同一时刻数据库连接池中处于非活动状态的最大连接数。
* maxWait - 当连接池中没有可用连接时,连接池在抛出异常前将等待的最大时间,单位毫秒。
* password - 传给JDBC驱动的数据库密码。
* url - 传给JDBC驱动的连接URL。
* user - 传给JDBC驱动的数据库用户名。
* validationQuery - 一个SQL查询语句,用于在连接被返回给应用前的连接池验证。如果指定了该属性,则必为至少返回一行记录的SQL SELECT语句。

posted @ 2007-08-28 15:35 kenty 阅读(129) 评论(0) 编辑

一、配置环境变量:

windowsXP + sp2 
 softe version:
     jdk-1_5_0_01
     tomcat5.5.12
     mysql4.1.14
     mysql-connector-java-3.1.111-bin.jar

路径:  tomcat5在C:\Tomcat 5.5;
 mysql在C:\Program Files\MySQL\MySQL Server 4.1
 jdk在C:\jdk1.5.0_01

Path(在原来的基础上加上):C:\Tomcat 5.5\bin;C:\jdk1.5.0_01;C:\jdk1.5.0_01\bin;C:\Tomcat 5.5\common\lib\servlet-api.jar;C:\Program Files\MySQL\MySQL Server 4.1\bin

CLASSPATH:C:\Tomcat 5.5\common\lib\servlet-api.jar;C:\Tomcat 5.5\common\lib\jsp-api.jar

JAVA_HOME:\jdk1.5.0_01

CATALINA_HOME:C:\Tomcat 5.5

二、建立测试数据库
在mysql中建立一个mywebdb数据库,同时创建一个表tested如下

create database mywebdb

create table tested
(
id int(2),
name varchar(6)
);

然后插入两条测试数据如下

insert into member values(1,"Holmes");
insert into member values(2,"conan");

至此,数据库准备完毕

三、Tomcat5数据源配置

1 以admin账户登入找到TomcatServer/Service/Host/你的Web程序名/DataSource   //-->点击这里  。

2 选择“Create New Data Source” 。

3 填写信息
    JNDI Name: jdbc/mywebdb  //-->连接池名字
    Data Source URL: jdbc:mysql://localhost:3306/mywebdb?autoReconnect=true
    JDBC Driver Class: com.mysql.jdbc.Driver
   //驱动需下载。
    User Name: //数据库用户名 。
    Password: //数据库密码 。
    Max. Active Connections: //最大活动连结数 ,0为不限 。
    Max. Idle Connections: //最大等待连结数 ,0为不限 。
    Max. Wait for Connection: //建立连接超时时间ms,-1为无限 。

4保存以后一定要点commit changes。

5不用重启,只要刷新页面就可以了。

四、配置web.xml

web.xml位于C:\Tomcat 5.5\webapps\ROOT\WEB-INF下,也即是你的WEB里的web.xml。(我是直接使用TOMCAT的工程进行修改)

同样用文本编辑器打开web.xml,然后加入如下语句(在<web-app>与</web-app>之间)

<resource-ref>
 <description>DB Connection</description>
 <res-ref-name>jdbc/mywebdb</res-ref-name>
 <res-type>javax.sql.DataSource</res-type>
 <res-auth>Container</res-auth>
</resource-ref>

五、编写测试jsp page

在C:\Tomcat 5.5\webapps\ROOT下编写一个test.jsp,代码如下:
<%@ page import="java.io.*,java.util.*,java.sql.*,javax.sql.*,javax.naming.*"%>
<%@ page contentType="text/html;charset=GB2312"%>
<html>
<head><title>DataSourse Connection Test</title></head>
<body>
<%
 try{
  Statement stmt;
  ResultSet rs;

  javax.naming.Context ctx=new javax.naming.InitialContext();
  javax.sql.DataSource ds= (javax.sql.DataSource)ctx.lookup ("java:comp/env/jdbc/mywebdb"); //红色  字为连接池名,其他固定。
  java.sql.Connection con=ds.getConnection();

  stmt=con.createStatement();
  rs=stmt.executeQuery("select * from tested");
  while(rs.next()){

  out.print(rs.getInt(1));
  out.print(rs.getString(2));
}
  rs.close();
  stmt.close();
  con.close();
 
 }catch(Exception e){
  out.print(e.getMessage());
 }
%>
</body>
</html>

六、开始测试

运行tomcat,打开IE在地址栏中输入:http://localhost:8080/test.jsp.

显示结果是:

1Holmes

2conan

posted @ 2007-08-28 15:31 kenty 阅读(96) 评论(0) 编辑