Java数据库连接池

1.首先配置数据源

我这里将其配置在META-INT/context.xml文件夹中

<?xml version="1.0" encoding="UTF-8"?>

<Context>
   <Resource name="jdbc/mysql"
             type="javax.sql.DataSource"
             auth="Container"
             driverClassName="com.mysql.jdbc.Driver"
             url="jdbc:mysql://localhost:3306/practice"
             username="root"
             password="asdasd456789"
             maxActive="9"
             maxIdle="2"
             maxWait="6000"
   />       
</Context>

<Resource>元素的属性说明

maxActive:设置数据库连接池中处于活动状态的数据库连接最大的数目

maxIdle:设置数据库连接池中处于空闲状态的数据库连接最大的数目

2.通过程序获得建立数据库连接

package com.liqiang.util;

import java.beans.PropertyVetoException;
import java.sql.Connection;

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


public class DataSourceUtils {
    private static DataSource ds;

    private static Connection conn;

    public static DataSource getDatasSource() {
        return ds;
    }

    public static Connection getConnection() {
        
        try {
        	InitialContext ctx = new InitialContext();
        	/*
        	 *  根据xml中配置的数据库连接池的name属性
        	 *  name:是绑定在那个项目上的DataSource,指定web根路径在下
				auth:说明验证类型为容器
				driverClassName:驱动类名:指明你用的mysql驱动包 
				type:指定连接池所用类型为DataSource(ODBC数据源)
				url:需要连接的数据库
				username:数据库名称
				password:数据库密码
        	 * */
        	ds  = (DataSource) ctx.lookup("java:comp/env/jdbc/mysql");
            conn = ds.getConnection();// 每一次从ds中获取一个新的连接
        } catch (Exception e) {
            e.printStackTrace();
        }
        return conn;
    }
    
    public void close()
    {
    	if(conn != null)
    	{
    		try {
    			conn.close();
    		}catch(Exception e)
    		{
    			e.printStackTrace();
    		}	
    	}
    }
}

提示:每次用完连接后一定要及时关闭连接,否则当数据库连接池所有的连接用完,就无法在使用了

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值