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. 總結這種方法配置與用法都很簡單,如果性能能過關的話(我沒有對性能進行測試:)),是值得使用。
總結
以上是生活随笔為你收集整理的jndi连接池链接mysql_使用容器提供的数据库连接池--JNDI用法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 北京林业大学学python吗_个人主页
- 下一篇: lisp 线型虚实变换_绘画|虚实?国风