鏈接池:
鏈接池是由容器(好比Tomcat)提供的,用來管理池中的鏈接對象。
鏈接池自動分配鏈接對象並對閒置的鏈接進行回收。
鏈接池中的鏈接對象是由數據源(DataSource)建立的。
鏈接池(Connection Pool)用來管理鏈接(Connection)對象。java
數據源:
數據源(DataSource)用來鏈接數據庫,建立鏈接(Connection)對象。
java.sql.DataSource接口負責創建與數據庫的鏈接
由Tomcat提供,將鏈接保存在鏈接池中。mysql
JNDI(Java Naming and Directory Interface,Java命名和目錄接口):
在程序中使用JNDI獲取數據源。sql
經過數據源建立的鏈接對象被統一的放入到鏈接池中進行管理。數據庫
搞清楚三者的關係,而後進行下面的配置 : )apache
鏈接池的配置:windows
C3P0鏈接池在Spring的配置文件application.xml的配置:tomcat
<!-- 配置C3P0鏈接池: -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="${jdbc.driver}"/>
<property name="jdbcUrl" value="${jdbc.url}"/>
<property name="user" value="${jdbc.user}"/>
<property name="password" value="${jdbc.password}"/>
</bean>oracle
數據源的配置與使用數據源的方法:app
一、配置Tomcat的conf/context.xml
<Resource name="jdbc/news"
auth="Container" type="javax.sql.DataSource" maxActive="100"
maxIdle="30" maxWait="10000" username="root" password="Admin"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://127.0.0.1:3306/news"/>
name=指定Resource的JNDI名稱
auth=指定管理Resource的Manager(Container由容器建立和管理,Application由Web應用建立和管理)
type=指定Resource的java類
maxActive=指定鏈接池中處於活動狀態的數據庫鏈接的最大數量
maxIdle=指定鏈接池中處於空閒狀態的數據庫的最大數量
maxWait=指定鏈接池中鏈接處於空閒的最長時間,超過這個時間會提示異常,取值爲-1,表示能夠無限期等待,單位爲毫秒(ms)
這裏不要忘記:還須要將數據庫的驅動jar包添加到,Tomcat安裝目錄下的lib文件夾中。jsp
二、使用JNDI獲取鏈接對象
lookup(java:comp/env/數據源名稱");
//java:comp/env/這是Java的語法要求,必須寫上。
//這裏的數據源名稱就是上面的jdbc/news,這個news是項目名。
3.編寫代碼獲取數據源
// 獲取數據庫鏈接
public Connection getConnection2() {
try {
//初始化上下文
Context cxt=new InitialContext();
//獲取與邏輯名相關聯的數據源對象
DataSource ds=(DataSource)cxt.lookup("java:comp/env/jdbc/news");
conn=ds.getConnection();
} catch (NamingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return conn;
}
還有一點要注意:測試鏈接是否成功,須要在jsp頁面輸出connection,而不是在java類中Run As,應爲數據源配置在Tomcat中須要把Web項目放入Tomcat容器中運行。jsp頁面代碼以下:
示例:
<%
BaseDao baseDao=new BaseDao();
Connection connection=baseDao.getConnection2();
%>
<%=connection %>
在Tomcat中的配置
配置在:context.xml文件內
F:\apache-tomcat-7.0.68-windows-x64\apache-tomcat-7.0.68\conf\context.xml
---------mySQL
<Resource name="jdbc/news"
auth="Container" type="javax.sql.DataSource"
maxActive="100"
maxIdle="30" maxWait="10000" username="root"
password="Admin001"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://127.0.0.1:3306/news"/>
----------Oracle
<Resource name="jdbc/orcl"
auth="Container" type="javax.sql.DataSource"
maxActive="100"
maxIdle="30" maxWait="10000" username="wuyong"
password="Admin001"
driverClassName="oracle.jdbc.OracleDriver"
url="jdbc:oracle:thin:@localhost:1521:orcl"/>
使用JNDI獲取鏈接對象
java:comp/env/jdbc/news
這段爲固定寫法java:comp/env/