Tomcat中数据库连接池如何设置与应用

60次阅读
没有评论

共计 5127 个字符,预计需要花费 13 分钟才能阅读完成。

这篇文章主要介绍了 Tomcat 中数据库连接池如何设置与应用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让丸趣 TV 小编带着大家一起了解一下。

配置:Tomcat5.5+JEE(jsdk1.5)+WINXP

还是简单的说一说文件配置:
1: 修改 %tomcat%/conf/server.xml 在

后加如下内容.
      Resource
name= jdbc/DBPool // 数据源名称
     type= javax.sql.DataSource
     password= xxxxxxxx
     driverClassName= com.mysql.jdbc.Driver
     maxIdle= 2
     maxWait= 5000
     username= root
     url= jdbc:mysql://127.0.0.1:3306/hptest
     maxActive= 4 /
2. 修改 %tomcat%/conf/context.xm; 在后加
  ResourceLink
name= jdbc/DBPool
  type= javax.sql.DataSource
  global= jdbc/DBPool /
3. 修改 %tomcat%/conf/web.xml

   MySQL DB Connection Pool
   jdbc/DBPool
   javax.sql.DataSource
   Container
   Shareable

  这样配置就算差不多了. 如果具体的还不懂可见上次发的文章.
4. 写一个程序测试.(写一个 WEB 程序)
  我的是 Myeclipse 写的程序, 这里不能从电脑上贴图真有点不方便 (我想哭).
    1: 写一个连接类:    
 DBPool.java
package com.test;

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

public class DBPool {
   private static DataSource pool;
   static {
        Context env = null;
         try {
             env = (Context) new InitialContext().lookup( java:comp/env
             pool = (DataSource)env.lookup(jdbc/DBPool
             if(pool==null)
                 System.err.println(DBPool is an unknown DataSource
              } catch(NamingException ne) {
                 ne.printStackTrace();
         }
     }
   public static DataSource getPool() {
       return pool;
   }
 
}
   2: 写一个 Servlet:  
  其中有是用来连接数据库和显示查询结果.
 Mytest.java
 package com.test;

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

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class Mytest extends HttpServlet {

   /**
    * Constructor of the object.
    */
   public Mytest() {
       super();
   }

   /**
    * Destruction of the servlet.

    */
   public void destroy() {
       super.destroy(); // Just puts destroy string in log
       // Put your code here
   }

   /**
    * The doGet method of the servlet.

    *
    * This method is called when a form has its tag value method equals to get.
    *
    * @param request the request send by the client to the server
    * @param response the response send by the server to the client
    * @throws ServletException if an error occurred
    * @throws IOException if an error occurred
    */
   public void doGet(HttpServletRequest request, HttpServletResponse response)
           throws ServletException, IOException {

       response.setContentType(text/html;charset=gb2312
       PrintWriter out = response.getWriter();
       String id=(String)request.getParameter(id
       Connection con=null;
       try{
           
           con=DBPool.getPool().getConnection();
            Statement stmt=con.createStatement();
               ResultSet rst=stmt.executeQuery(select * from userinf where userid= +id+
                 if(rst.next()){
                                         out.println(
ID 号: +rst.getInt(userid));
                     out.println(
用户名: +com.test.ASSICTOGBR2312.trans(rst.getString( name)));
                     out.println(
地址: +rst.getString(address));
                     out.println(
生日 +rst.getDate(year));
                 }
                 else{
                 out.println(没有这个 ID
                 stmt.close();
                 }
       }
       catch(Exception e){
           e.printStackTrace();
       }
       finally{ // 一定要注意这里对数据库的关闭不然
                            // 自己想了
           try{
               if(con!=null){
                   con.close();
               }
               
           }
         catch(Exception e){
          e.printStackTrace();
         
      }
           
       }
   
   }

   /**
    * The doPost method of the servlet.

    *
    * This method is called when a form has its tag value method equals to post.
    *
    * @param request the request send by the client to the server
    * @param response the response send by the server to the client
    * @throws ServletException if an error occurred
    * @throws IOException if an error occurred
    */
   public void doPost(HttpServletRequest request, HttpServletResponse response)
           throws ServletException, IOException {
       doGet(request,response);
       
   }

   /**
    * Initialization of the servlet.

    *
    * @throws ServletException if an error occure
    */
   public void init() throws ServletException {
       // Put your code here
   }

}
     3: 写一个 JSP 页面:
        Myjsp.jsp
   
%@ page= language= java import= java.util.* pageencoding= gb2312
%
String path = request.getContextPath();
String basePath = request.getScheme()+ :// +request.getServerName()+ : +request.getServerPort()+path+ /
%

 
   “/>
   
   My JSP MyJsp.jsp starting page
   
   
   
   
   
   
   
    !–
   
   — gt
 
 
 
 
   This is my JSP page.

   
   print input search id:
   
   
 

  4: 其中有转字, 为了不显示乱码
   package com.test;

import java.io.*;
public class ASSICTOGBR2312 {
     public static String trans(String ass){
         String res=null;
         byte temp[];
         try{
             temp=ass.getBytes(iso-8859-1
             res=new String(temp);
         }
         catch(UnsupportedEncodingException en) {
             System.out.println(en.toString());
         }
         
       
         
         return res;
   
     }
}

  5:web.xml

 
web-app version= 2.4
xmlns= http://java.sun.com/xml/ns/j2ee
   xmlns:xsi= http://www.w3.org/2001/XMLSchema-instance
   xsi:schemaLocation= http://java.sun.com/xml/ns/j2ee
   http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd
 
   This is the description of my J2EE component
   This is the display name of my J2EE component
   Mytest
   com.test.Mytest
 

 
   Mytest
   /servlet/Mytest
 

  6: 其中数据库结构如下:
      数据库名:hptest
      表:userinf
      用下面的命令建一个数据库和表
     create database hptest;
     create table  userinf (
      userid int(4) not null,
      name char(10) not null,
      address varchar(50),
      year date,
      constraint fk_userinf primary key(userid));
      )
      insert into userinf values(19, hp , cq , 1982-10-22

感谢你能够认真阅读完这篇文章,希望丸趣 TV 小编分享的“Tomcat 中数据库连接池如何设置与应用”这篇文章对大家有帮助,同时也希望大家多多支持丸趣 TV,关注丸趣 TV 行业资讯频道,更多相关知识等着你来学习!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-27发表,共计5127字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)