关于用数据库连接池

连接池的基本原理:


要取得连接最起码要先找到池啊,池怎么找的,对于java来说就是个java对象啊,一般来说是用new,但是这里不用new,我们在这里用连接池并不知道是dbcp的,我们直接拿产品就可以了,tomcat已经为我们创建好了的,tomact已经将它放到一个服务上,叫jndi,它以目录的方式来管理对象,把创建好的对象放到这个目录树上,其实他就是个工厂,它隐藏了对象的创建细节,tomcat对jndi进行了实现,weblogic也对它进行了实现,等等。通过一个名用lookup方法就可以找到那个datasource

连接池都实现DataSource这个接口,用的是dbcp,那这个数据源即DataSource对象就是dbcp对象,我们所看到的就是数据源,并不知道他到底是dbcp还是其他的实现

当用dbcp的close连接的方法时,是将连接放回连接池里面的,因为它覆盖了sql中的那个close连接的方法。

注意点:因为classloader的双亲委托机制,dbcp的classloader是在common里面的,而如果这里没有oracle的驱动,则会找不到而出错


步骤:

一:在tomcat下的conf/context.xml中加个配置如下

<Resource name="jdbc/drp2" auth="Container"
              type="javax.sql.DataSource" driverClassName="oracle.jdbc.OracleDriver"
              url="jdbc:oracle:thin:@127.0.0.1:1521:myora1"
              username="drp2" password="drp2" maxActive="20" maxIdle="10"
              maxWait="-1"/> 

二:在程序中得到连接,用jndi这种服务

Context context=new InitialContext();
DataSource ds=(DataSource)context.lookup("java:comp/env/jdbc/drp2");
conn=ds.getConnection();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yjsuge

你的鼓励是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值