基于Tomcat和Oracle的连接池技术的Jdbc连接

首先修改Tomcat的安装目录下子目录conf包中的context.xml文件,进行配置连接池。如下:

<Resource
   	driverClassName="oracle.jdbc.OracleDriver"
	url="jdbc:oracle:thin:@127.0.0.1:1521:orcl"
	username="bb"
	password="bb"
	name="jdbc/oracle"
	type="javax.sql.DataSource"
	auth="Container"
	maxActive="10"
   />

其中,dirverClassName : oracle的驱动类名

    url 数据库的url

    username 数据库的用户名

    password 数据库当前用户名的密码

    name 当前连接池的名称,固定写法

    type 当前连接池的类型,是数据源类型

    auth 当前连接池的拥有者是Container(容器)

    maxActive 最大活跃连接


配置好tomcat的context.xml后,创建JdbcUtil类:

package util;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;

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

public class JdbcUtil {
	private static final ThreadLocal<Connection> tt = new ThreadLocal<Connection>();
	
	public static Connection getConnection() throws Exception{
		Connection conn = tt.get();
		
		if(conn == null) {
			Context context = new InitialContext();
			DataSource ds = (DataSource)context.lookup("java:comp/env/jdbc/oracle");
			conn = ds.getConnection();
			tt.set(conn);
		} 
		
		return conn;
	}
	
	public static void close(ResultSet rs,Statement stmt,Connection conn) throws Exception{
		if(rs != null) try { rs.close(); } catch(Exception e) {}
		if(stmt != null) try { stmt.close(); } catch(Exception e) {}
		if(conn != null) try { conn.close(); tt.remove(); } catch(Exception e) {}
	}
}

此处用到了线程ThreadLocal,ThreadLocal中有一个存储空间,如果从当前线程获取不到conn,则创建新的conn,如果在当前线程能够获取有效的conn,则不在重新创建。其中DataSource是数据源,通过数据源获取连接,而数据源是通过context对象在容器中找jdbc/oracle这个连接池数据源。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值