共計(jì) 2516 個(gè)字符,預(yù)計(jì)需要花費(fèi) 7 分鐘才能閱讀完成。
這篇文章將為大家詳細(xì)講解有關(guān) Tomcat7 如何配置數(shù)據(jù)源,丸趣 TV 小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
在 JDBC 的操作中,打開(kāi)和關(guān)閉數(shù)據(jù)庫(kù)連接,是最耗費(fèi)數(shù)據(jù)庫(kù)資源的,我們可以在服務(wù)器上存放一定量的數(shù)據(jù)庫(kù)連接,每當(dāng)程序要連接數(shù)據(jù)庫(kù)時(shí),就將這些鏈接給它們,而一旦程序退出數(shù)據(jù)庫(kù)操作時(shí),要將這些鏈接返回給服務(wù)器。
下圖是數(shù)據(jù)源的基本概念:
1:通過(guò) Connection Pool 管理數(shù)據(jù)庫(kù)連接
2:通過(guò) Data Source 去管理 Connection Pool
3: Data Source 被 JNDI Tree 綁定
一:JNDI 配置方式
現(xiàn)在來(lái)講一下如何到服務(wù)器上對(duì) Data Source 進(jìn)行配置
服務(wù)器:Tomcat 7
1:將下面的代碼添加到 Tomcat 服務(wù)器上 conf/context.xml 中的標(biāo)簽中
點(diǎn)擊 (此處) 折疊或打開(kāi)
Resource
name= jdbc/shopping
auth= Container
type= javax.sql.DataSource
maxActive= 100
maxIdle= 30
maxWait= 10000
username= root
password= root
driverClassName= com.mysql.jdbc.Driver
url= jdbc:mysql://localhost:3306/shopping
/
上下文 context.xml 中的參數(shù)的解析如下:
其中的 name 屬性是數(shù)據(jù)源名稱(chēng),通常采取 jdbc/**.
driverClassName 屬性是驅(qū)動(dòng)程序名稱(chēng)
username,password,數(shù)據(jù)庫(kù)名稱(chēng)和密碼
url: 訪問(wèn)的數(shù)據(jù)庫(kù)路徑。其中 url 的內(nèi)容組成解析上篇博客中已經(jīng)分析
maxActive 屬性是并發(fā)連接的最大數(shù)。設(shè)置為 0 則無(wú)限制。
maxWait 屬性是等待連接的最大連接的時(shí)間。
maxIdle 屬性是連接池中空閑的連接的個(gè)數(shù)。
ORACLE 寫(xiě)法有些區(qū)別:
Resource
name= jdbcoracle
auth= Container
type= javax.sql.DataSource
factory= org.apache.tomcat.dbcp.dbcp.BasicData SourceFactory
maxActive= 20
maxIdle= 1
maxWait= 100
username= test
password= test
driverClassName= oracle.jdbc.OracleDriver
url= jdbc:oracle:thin:@localhost:1521:orcl
/Context
2. 修改 web.xml
打開(kāi) %TOMCAT_HOME%\conf\web.xml, 在的前面添加以下內(nèi)容:
description MySQL Test App /description
resource-ref
description DB Connection /description
res-ref-name jdbc/shopping /res-ref-name – 此名字要與前面的 name 一樣!
res-type javax.sql.DataSource /res-type
res-auth Container /res-auth
/resource-ref
3. 建立測(cè)試文件
%@ taglib uri= http://java.sun.com/jsp/jstl/sql prefix= sql %
%@ taglib uri= http://java.sun.com/jsp/jstl/core prefix= c %
sql:query var= rs dataSource= jdbc/shopping
select id, name, normalprice from product
/sql:query
html
head
title DB Test /title
/head
body
h3 Results /h3
c:forEach var= row items= ${rs.rows}
name ${row.name} br/
normalprice ${row.normalprice} br/
/c:forEach
/body
/html
4. 添加 jar 包
JDBC 驅(qū)動(dòng)程序 mysql-connector-java-5-bin.jar 放置在 %TOMCAT_HOME%\lib 和 應(yīng)用的 WEB-INF\lib 下,復(fù)制 jstl.jar 和 standard.jar 到 你的 WEB-INF/lib 目錄.
5. 配置名稱(chēng)
配置名稱(chēng) name= jdbc/mldn 可以任意,配置完成后,需要通過(guò)名稱(chēng)查找的方式,去找到數(shù)據(jù)源,本示例代碼運(yùn)用的 Tomcat 服務(wù)器, 所以在查找時(shí)需要對(duì)名稱(chēng)進(jìn)行定位:java:comp/env
%@ page import= java.sql.* %
%@ page import= javax.sql.* %
%@ page import= javax.naming.* %
%!
final String JNDINAME = java:comp/env/jdbc/shopping
%
%
Connection conn = null ;
try
{
// 初始化查找命名空間
Context ctx = new InitialContext() ;
// 找到 DataSource
DataSource ds = (DataSource)ctx.lookup(JNDINAME) ;
conn = ds.getConnection() ;
}
catch(Exception e)
{
System.out.println(e) ;
}
%
%=conn%
%
// 將連接重新放回到池中
conn.close() ;
%
配置 spring
bean id= dataSource >
property name= jndiName value java:comp/env/jdbc/xxx /value /property
/bean
關(guān)于“Tomcat7 如何配置數(shù)據(jù)源”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。