java_spring 连接池

1  比较重要的一个包是
    org.spring.jdbc.datasource 包括2个类 DatasourceTransactionManager  ,SQLDataSourceSerlet

DatasourceTransactionManager 这个类功能:调用web.xml中数据库连接差数传递到       SQLDataSourceSerlet
建立连接    
SQLDataSourceSerlet 从web.xml中得到连接差数设定数据原 
web.xml在你jsp项目下面的文件:上添加SQLDataSourceSerlet 描述建立SQLDataSourceSerlet 实例

public class DatasourceTransactionManager
{

    public static Connection conn;
    public static DataSource ds;
    public static DataSource dsSQL;
    public static Connection connSQL;


    public DatasourceTransactionManager(){};

    public static Connection getConnectionSQL()
        throws ClassNotFoundException, SQLException
    {
        Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
        String url = "jdbc:microsoft:sqlserver://10.20.1.21:1433;DatabaseName=pt";
        Connection con = DriverManager.getConnection(url, "pt", "pt");
        return con;
    }

    public static Connection Create(){
       try {
           connSQL=getSQLDataSource().getConnection();
  } catch (SQLException e) {
   // TODO 自动生成 catch 块
  e.printStackTrace();
   } 
        return connSQL;
    }
   
   public static DataSource getSQLDataSource(){
        try{
            Context ctx = new InitialContext();
            if(dsSQL == null)
                dsSQL = (DataSource)ctx.lookup("mySQLData");
        }
        catch(Exception e){
            System.out.println(e);
        }
        return dsSQL;
    }  

     public static Connection getConn(){
        return conn;
    }

    public static void setConn(Connection conn_){
     conn  = conn_;
    }

    public static Connection getConnSQL(){
        return connSQL;
    }

    public static void setConnSQL(Connection conn_){
     connSQL  = conn_;
    }  
}

public class SQLDataSourceServlet extends HttpServlet {

 /**
  *
  */
 private static final long serialVersionUID = 1L;

 public void init(ServletConfig config) throws ServletException  
 {  
    String DBUrl = config.getInitParameter("DBUrl");
    if(DBUrl == null) DBUrl = "jdbc:microsoft:sqlserver://10.20.1.21:1433;DatabaseName=pt";  
  
    String Username = config.getInitParameter("Username");  
    if(Username == null) Username = "pt";  
  
    String Password = config.getInitParameter("Password");  
    if(Password == null) Password = "pt";  
  
    String DriverClassName = config.getInitParameter("DriverClassName");  
    if(DriverClassName == null) DriverClassName = "com.microsoft.jdbc.sqlserver.SQLServerDriver";  
  
    String MaxWaitStr = config.getInitParameter("MaxWait");  
    if(MaxWaitStr == null) MaxWaitStr = "3000";  
    long MaxWait = (new Long(MaxWaitStr)).longValue();  
  
    String MaxIdleStr = config.getInitParameter("MaxIdle");  
    if(MaxIdleStr == null) MaxIdleStr = "10";  
    int MaxIdle = (new Integer(MaxIdleStr)).intValue();  
  
    String MaxActiveStr = config.getInitParameter("MaxActive");  
    if(MaxActiveStr == null) MaxActiveStr = "100";  
    int MaxActive = (new Integer(MaxActiveStr)).intValue();  
               
    String SQLName = config.getInitParameter("SQLName");  
    if(SQLName == null) SQLName = "mySQLData";  
               
 try{  
  Context initCtx = (Context)new InitialContext();  
  BasicDataSource bds = new BasicDataSource();  
  
  bds.setUrl(DBUrl);  
  bds.setUsername(Username);  
  bds.setPassword(Password);  
  bds.setDriverClassName(DriverClassName);  
  bds.setMaxWait(MaxWait);  
  bds.setMaxIdle(MaxIdle);  
  bds.setMaxActive(MaxActive);  
  bds.setDefaultAutoCommit(true);
  bds.setRemoveAbandoned(true); 
  bds.setRemoveAbandonedTimeout(60);
  initCtx.rebind(SQLName,bds);  
 }catch(Exception e){  
   e.printStackTrace();  
 }  
  
 }//end init(ServletConfig config)   
  
 
 

}



 web.xml
 

    <servlet> 
        <servlet-name>SQLSource</servlet-name> 
        <servlet-class>org.spring.jdbc.datasource.SQLDataSourceServlet</servlet-class> 
        <init-param> 
            <param-name>DBUrl</param-name> 
            <param-value>jdbc:microsoft:sqlserver://10.20.1.21:1433;DatabaseName=pt</param-value> 
        </init-param> 
        <init-param> 
            <param-name>Username</param-name> 
            <param-value>pt</param-value> 
        </init-param> 
        <init-param> 
            <param-name>Password</param-name> 
            <param-value>pt</param-value> 
        </init-param> 
        <init-param> 
            <param-name>DriverClassName</param-name> 
            <param-value>com.microsoft.jdbc.sqlserver.SQLServerDriver</param-value> 
        </init-param> 
        <init-param> 
            <param-name>MaxWait</param-name> 
            <param-value>3000</param-value> 
        </init-param> 
        <init-param> 
            <param-name>MaxIdle</param-name> 
            <param-value>10</param-value> 
        </init-param> 
        <init-param> 
            <param-name>MaxActive</param-name> 
            <param-value>100</param-value> 
        </init-param> 
        <init-param> 
            <param-name>SQLName</param-name> 
            <param-value>mySQLData</param-value> 
        </init-param> 
 
        <load-on-startup>1</load-on-startup> 
    </servlet> 
这里可以添加多个连接  注意 <servlet-name>SQLSource</servlet-name> 名字不能重复
<param-value>mySQLData</param-value>  
为 dsSQL = (DataSource)ctx.lookup("mySQLData");中的mySQLData

  


   

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值