在JDBC的操作中,打開和關閉數據庫連接,是最耗費數據庫資源的,我們可以在服務器上存放一定量的數據庫連接,每當程序要連接數據庫時,就將這些鏈接給它們,而一旦程序退出數據庫操作時,要將這些鏈接返回給服務器。
數據庫連接池:負責分配、管理和釋放數據庫連接。這項技術能明顯提高對數據庫操作的性能。
下圖是數據源的基本概念:
1:通過Connection Pool 管理數據庫連接
2:通過Data Source 去管理Connection Pool
3: Data Source 被JNDI Tree 綁定
JNDI配置方式
現在來講一下如何到服務器上對 Data Source 進行配置?
服務器: Tomcat 7
數據庫:MySQL
1. 將下面的代碼添加到Tomcat服務器上conf/context.xml中的<Context></Context>標籤中
<Resource name="jdbc/shopping" // 後續jndi name auth="Container" type="javax.sql.DataSource" //類型 DataSource 數據源 maxActive="100" //100 maxIdle="30" maxWait="10000" // username="root" //用戶名 password="root" //密碼 driverClassName="com.mysql.jdbc.Driver" //驅動名稱 url="jdbc:mysql://localhost:3306/shopping" //數據庫的地址 /> |
上下文context.xml中的參數的解析如下:
n name屬性是數據源名稱,通常採取jdbc/**.
n driverClassName屬性是驅動程序名稱。
n username,password,數據庫名稱和密碼
n url:訪問的數據庫路徑。其中url的內容組成解析上篇博客中已經分析
n maxActive屬性是併發連接的最大數。設置爲0則無限制。
n maxWait屬性是等待連接的最大連接的時間。
n maxIdle屬性是連接池中空閒的連接的個數。
n 參數可以在?後面增加
2. 添加jar包
JDBC驅動程序mysql-connector-java-5-bin.jar放置在%TOMCAT_HOME%\lib和應用的WEB-INF\lib下。
3. 通過JAVA代碼使用JDNI獲取數據庫連接對象
注意:在查找時需要對名稱進行定位:java:comp/env
Connection conn = null; try { Context context = new InitialContext(); DataSource dataSource = (DataSource)context.lookup("java:comp/env/jdbc/shopping"); conn = dataSource.getConnection(); } catch (NamingException e) { e.printStackTrace(); } |