随笔-86  评论-33  文章-0  trackbacks-0
=======学习Tomcat5.0连接池总结========
Tomcat5.0连接池测试
1、通过图形界面在Tomcat5.0里建立DataSource,如果用的专用驱动将驱动包放到tomcat/common/lib下。
2、建立完后server.xml在 <GlobalNamingResources>标签下会增加以下内容
<Resource name="jdbc/Sqlserver" type="javax.sql.DataSource" auth="Container"/>

   
<ResourceParams name="jdbc/Sqlserver">
      
<parameter>                                                     <!--factory该参数需要自己添加-->
        
<name>factory</name> 
        
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
 
      
</parameter>
 
      
<parameter>

        
<name>validationQuery</name>
        
<value>select * from bookinfor</value>
      
</parameter>
      
<parameter>
        
<name>maxWait</name>
        
<value>5000</value>
      
</parameter>
      
<parameter>
        
<name>maxActive</name>
        
<value>4</value>
      
</parameter>
      
<parameter>
        
<name>password</name>
        
<value>dada</value>
      
</parameter>
      
<parameter>
        
<name>url</name>
        
<value>Jdbc:Odbc:tushu</value>
      
</parameter>
      
<parameter>
        
<name>driverClassName</name>
        
<value>sun.jdbc.odbc.JdbcOdbcDriver</value>
      
</parameter>
      
<parameter>
        
<name>maxIdle</name>
        
<value>2</value>
      
</parameter>
      
<parameter>
        
<name>username</name>
        
<value>sa</value>
      
</parameter>
    
</ResourceParams>


3、由于WAR部署在webapps下,则要在server.xml的<host>标签下定义相关内容
   手动添加<Context>标签内容,其中Context标签内定义了WAR文件的部署情况,即该源只针对该应用,其下再次定义数据源,COPY上面系统生成的数据源参数文件内容。同时可以删除以上由系统生成的数据源定义,不删也可以!即只在<host></host>中定义既可!
<host>
  <Context>
     <!--数据源-->
  </Context>
</host>

例子如下:

<Host appBase="webapps" name="localhost">
        
<Context path="/WebData" docBase="D:/Program Files/Tomcat5/webapps/WebData" debug="1" reloadable="true">
        
<Resource name="jdbc/Sqlserver" type="javax.sql.DataSource" auth="Container"/>
        
<ResourceParams name="jdbc/Sqlserver">
      
<parameter> 
        
<name>factory</name>
 
        
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
 
      
</parameter>
 
      
<parameter>

        
<name>validationQuery</name>
        
<value>select * from bookinfor</value>
      
</parameter>
      
<parameter>
        
<name>maxWait</name>
        
<value>5000</value>
      
</parameter>
      
<parameter>
        
<name>maxActive</name>
        
<value>4</value>
      
</parameter>
      
<parameter>
        
<name>password</name>
        
<value>dada</value>
      
</parameter>
      
<parameter>
        
<name>url</name>
        
<value>Jdbc:Odbc:tushu</value>
      
</parameter>
      
<parameter>
        
<name>driverClassName</name>
        
<value>sun.jdbc.odbc.JdbcOdbcDriver</value>
      
</parameter>
      
<parameter>
        
<name>maxIdle</name>
        
<value>2</value>
      
</parameter>
      
<parameter>
        
<name>username</name>
        
<value>sa</value>
      
</parameter>
    
</ResourceParams>
        
</Context>
        
<Logger className="org.apache.catalina.logger.FileLogger" prefix="localhost_log."    suffix=".txt" timestamp="true"/>
</Host>

4、至此数据源Tomcat数据源配置完成!
   下面将对数据源开始使用
   首先配置应用服务webMoudle的web.xml文件,即添加数据源的应用定义
 <resource-ref>
    
<res-ref-name>jdbc/Sqlserver</res-ref-name>   <!--Tomcat中定义的JNDI的名称-->
    
<res-type>javax.sql.DataSource</res-type>     <!--数据源类-->
    
<res-auth>Container</res-auth>                <!--容器中-->
  
</resource-ref>


5、测试代码:

<%@ page contentType="text/html;charset=gb2312"%> 
<%@ page import="java.sql.*"%>

<%@ page import="javax.sql.*"%>  
<%@ page import="javax.naming.*"%>
  
<html>
 
<body>
 
<%

Context ctx 
= new InitialContext();
Connection conn
=null
;
          ctx 
= new
 InitialContext();
          DataSource ds 
=(DataSource)ctx.lookup("java:comp/env/jdbc/Sqlserver");//查找JNDI数据源名

          conn = ds.getConnection();
Statement stmt
=
conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); 
String sql
="select * from bookinfor"

ResultSet rs
=
stmt.executeQuery(sql); 
while
(rs.next()) {
out.print(rs.getString(1
));
out.print(rs.getString(2
));
out.print(rs.getString(3
));
}
out.print("数据库操作成功,恭喜你"
);
rs.close(); 
stmt.close(); 
conn.close(); 
%>
 
</body>
 
</html>
posted on 2005-09-11 10:13 Derek.Guo 阅读(1916) 评论(0)  编辑  收藏 所属分类: Java

只有注册用户登录后才能发表评论。


网站导航:
 
MSN:envoydada@hotmail.com QQ:34935442