Tomcat5.0配置Sql Server2000连接池

来源:互联网 发布:单片机ad测量直流电压 编辑:程序博客网 时间:2024/05/01 01:13

配置分为两部分:

(1)。修改conf/server.xml文件加入

<Context path="/songshan" docBase="songshan" debug="5" reloadable="true" crossContext="true">
<Resource name="jdbc/sqlserver" auth="Container" type="javax.sql.DataSource"/>

<ResourceParams name="jdbc/postgres">
  <parameter>
    <name>factory</name>
    <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
  </parameter>
  <parameter>
    <name>driverClassName</name>
    <value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>
  </parameter>
  <parameter>
    <name>url</name>
    <value>jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=growthModel</value>
  </parameter>
  <parameter>
    <name>username</name>
    <value>sa</value>
  </parameter>
  <parameter>
    <name>password</name>
    <value>1111</value>
  </parameter>
  <parameter>
    <name>maxActive</name>
    <value>20</value>
  </parameter>
  <parameter>
    <name>maxIdle</name>
    <value>10</value>
  </parameter>
  <parameter>
    <name>maxWait</name>
    <value>-1</value>
  </parameter>
</ResourceParams>

</Context> 

(2)。修改应用中的WEB-INF/web.xml文件,加入:

 <resource-ref>
 <description>Datasource example</description>
 <res-ref-name>jdbc/sqlserver</res-ref-name>
 <res-type>javax.sql.DataSource</res-type>
 <res-auth>Container</res-auth>
</resource-ref>
最后新建一个Servlet测试一下:

 

package com.haizg;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.*;

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.*;

import javax.servlet.*;
import javax.servlet.http.*;

public class TestDS extends HttpServlet {
     DataSource pool;
     
public void init() throws ServletException{
         Context env 
= null;
         
try{
             env 
= (Context) new InitialContext().lookup("java:comp/env");
             pool 
= (DataSource) env.lookup("jdbc/sqlserver");
             
if (pool == null)
                 
throw new ServletException("no such datasource!");
         }
catch(NamingException ne){
             
throw new ServletException(ne.getMessage());
         }

     }

     
public void doGet(HttpServletRequest request,HttpServletResponse response)
                            
throws ServletException,IOException{
         String sql 
= "select * from growthModel";
         Connection conn 
= null;
         Statement stmt 
= null;
         ResultSet rs 
= null;
         ResultSetMetaData rsm 
= null;
         
         PrintWriter out 
= response.getWriter();
         
         
try{
             conn 
= pool.getConnection();
             stmt 
= conn.createStatement();
             rs 
= stmt.executeQuery(sql);
             rsm 
= rs.getMetaData();
             
int colNum = rsm.getColumnCount();
             
             out.println(
"<table>");
             
//表头
             out.println("<tr>");
             
for(int i=1;i<=colNum;i++)
                 out.println(
"<td>" + rsm.getColumnName(i) + "</td>");
             out.println(
"</tr>");
             
//表内容
             while(rs.next()){
                 out.println(
"<tr>");
                 
for(int i = 1;i<=colNum;i++){
                     out.println(
"<td>" + rs.getString(i) + "</td>" );
                 }

                 out.println(
"</tr>");
             }

             out.println(
"</table>");
             
         }
catch(Exception e){
             
throw new ServletException(e.getMessage());
         }
finally{
             
try{
                 
if (stmt != null)
                     stmt.close();
                 
if (conn != null)
                     conn.close();
             }
catch(SQLException sqle){
                 
             }

         }

         
         
         
         
     }


}