jndi连接池链接mysql_使用容器提供的数据库连接池--JNDI用法

现在,数据库的连接没有用到连接池几乎很少很少,每个项目组都可能有自己的数据库连接池组件,各容器提供商也提供了各自的数据库连接池,下面介绍一下tomcat和weblogic使用JNDI的数据库连接管理。

本文中用到的数据库信息如下:

数据库:ms sql server

host: demo

database: test

DriverName: com.microsoft.jdbc.sqlserver.SQLServerDriver

(注:数据库驱动,weblogic放在$BEA$/weblogic81/common/lib下,tomcat放在自己项目/WebRoot/WEB-INF/lib下)

User: sa

password: sa

数据源:JNDI_Test

1、服务器配置:

现在的容器提供商都提供了管理工具,可以通过服务器管理工作来配置数据库连接池和数据源。

下面就目前流行的weblogic和tomcat来说明

1.1 Weblogic配置

weblogic得先配置数据库连接池,再配置数据源,配置完成后,config.xml中的Domain(这里是myserver)内增加如下信息:

DriverName="com.microsoft.jdbc.sqlserver.SQLServerDriver"

Name="MyJDBCConnPool" PasswordEncrypted="{3DES}iEg3VohwDmo="

Properties="user=sa;url=jdbc:microsoft:sqlserver://demo:1433;selectMethod=cursor;dataSourceName=SQL2000JDBC;userName=sa;datab

aseName=test;serverName=demo"

Targets="myserver" TestTableName="SQL SELECT 1" URL="jdbc:microsoft:sqlserver://demo:1433"/>

PoolName="MyJDBCConnPool" Targets="myserver"/>

1.2 tomcat配置

Tomcat直接在相应的Context下配置(这里是test,也可以在GlobalNamingResources,该配置方法请查找相关资料)数据源,配置服务器配置

完成后,相应的Context配置文件如下:

url

jdbc:microsoft:sqlserver://demo:1433;DatabaseName=test

password

sa

maxActive

10

maxWait

5000

driverClassName

com.microsoft.jdbc.sqlserver.SQLServerDriver

username

sa

maxIdle

2

2、用法:

2.1 一般用法

可以创建数据库连接管理器来管理数据库连接,类如下:

/*

* 创建日期 2005-8-26

*

* 数据库连接管理器 V0.1

*

*/

package com.brewx.db;

import java.sql.Connection;

import java.sql.SQLException;

import javax.naming.Context;

import javax.naming.InitialContext;

import javax.naming.NamingException;

import javax.sql.DataSource;

/**

* @author Jinghui

*

*/

public final class DBConnectionManager {

//JNDI名称

private static String JNDIName = "JNDI_Test";

//是否是Tomcat服务器

private static boolean isTomcat = true;

//同步锁

private static Object initLock = new Object();

//数据源,提供数据连接

private static DataSource dataSource = null;

/**

* 从数据源中取得数据库连接

* @return connetion 数据库连接

* @throws SQLException

* @throws NamingException

*/

public static Connection getConnection() throws SQLException,

NamingException {

if (dataSource == null) {

synchronized (initLock) {

if (dataSource == null) {

Context ctx = new InitialContext();

if (isTomcat) {

//如果是tomcat,则查找上下文java:comp/env

ctx = (Context) ctx.lookup("java:comp/env");

}

//查找数据源

dataSource = (DataSource) ctx.lookup(JNDIName);

}

}

}

return dataSource.getConnection();

}

}

2.2 在hibernate中的用法

在hibernate下的tomcat配置请参阅hibernate手册。

weblogic配置如下:

net.sf.hibernate.dialect.SQLServerDialect

JNDI_Test

......

3. 总结这种方法配置与用法都很简单,如果性能能过关的话(我没有对性能进行测试:)),是值得使用。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值