用xml配置自己的连接池

本文介绍如何在Tomcat中自定义XML文件配置数据库连接资源,并提供了具体的代码示例,包括context.xml的内容设置及如何在应用中获取这些资源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 1.自定义一个.XML如:context.xml

context.xml

                  <?xml version="1.0" encoding="UTF-8"?>
                 <Context>
                   <Resource
                        name="jdbc/xxx"
                        type="javax.sql.DataSource"
                       driverClassName="oracle.jdbc.driver.OracleDriver"
                       maxIdle="5"
                       maxWait="500"
                       username="xx"
                       password="xx"
                       url="jdbc:oracle:thin:@192.168.1.159:1521:db01"
                       maxActive="1000"/>
                 </Context>
注:可以配置多个<Resource>,也是就连接资源,同样可以配置各种数据库的连接资源。

2.将已经定义好了的xml放到tomcat的conf/Catalina下

3.从xml中读取资源

           import java.sql.Connection;
           import javax.sql.DataSource;
           import java.sql.ResultSet;
           import java.sql.Statement;
           import javax.naming.Context;
           import javax.naming.InitialContext;

/**
* @author admin
*
*/
public class DBLink{
public static Connection getConnection() throws Exception{

   Context initct=new InitialContext();
   Context envCtx=(Context)initct.lookup("java:comp/env");
   DataSource sr=(DataSource)envCtx.lookup("jdbc/xxx");
   Connection conn=sr.getConnection();
   return conn;
}
  

public static int SQLUpdate(Connection conn,String sql){
   System.out.println(sql);
   int i=0;
   try{
   Statement stmt=conn.createStatement();
   i=stmt.executeUpdate(sql);
   stmt.close();
   }
   catch(Exception e){
    e.printStackTrace();
    //System.out.println(e.toString());
   }
   return i;
}

public static int getRecordnum(Connection conn,String sql)throws Exception{
   Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
   ResultSet res=stmt.executeQuery(sql);
   res.last();
   int i=res.getRow()-1;
   res.close();
   stmt.close();
   return i;
  
}

public static ResultSet SQLQuery(Connection conn,String sql)throws Exception{
   Statement stmt=conn.createStatement();
   ResultSet res=stmt.executeQuery(sql);
   return res;
}

public static int pagenum(int recordnum,int perpage){
   int pgnum=1;
   for(recordnum=recordnum-pgnum*perpage;recordnum>=0;pgnum++);
   return pgnum;
}

public static void closeConnection(Connection conn){
   if(conn!=null){
    try{
     conn.close();
    }
    catch(Exception ee){
     ee.printStackTrace();
    }
   }
}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值