TomCat6.0數據庫連接池配置有幾種方式,在這裡我只介紹其中的一種供大家參考:
下面我把配置過程分成三個步驟來完成:
第 一步:在你安裝TomCat的目錄下找到context.xml配置文件。(例如:D:\Tomcat 6.0\conf\context.xml)然後打開context.xml,在標 簽<context></<context>之間加入以下內容:(為了大家容易理解,我加了較詳細的注釋)
<Resource
name="jdbc/course" //數據源名稱(自定義)到時候要用到的,所以最好起
//個有含義的名字,例如我這個數據源名字,jdbc表示與//數據庫連接有關的,而course是我這個項目的名字。
auth="Container" //這個默認就好了
type="javax.sql.DataSource" //這個也默認就好了
driverClassName="com.mysql.jdbc.Driver"//這裡用到的是mysql數據庫的驅動包。
url="jdbc:mysql://localhost/course" //這裡是連接到mysql數據庫的url,其中url="jdbc:mysql://localhost/"是固定的,而course是我這個 //項目的數據庫名稱,所以這裡改為你們的數據庫名稱就好了。
username="root"//登陸數據庫的用戶名
password="birchhua" //登陸數據庫的密碼
maxIdle="5"//這個也默認就好了
maxWait="5000"//這個也默認就好了
maxActive="10"/>//這個也默認就好了
第二步:在你的項目WEB-INF目錄下找到web.xml配置文件,然後打開,在標簽<web-app></web-app>之間加入以下內容: <resource-ref>
<description>DB Connection</description> <res-ref-name>jdbc/course</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref>其中:DB Connection 是自定義的,而jdbc/course是對應上面<Resource></Resource>標簽中的name屬性的值,還有 javax.sql.DataSource就對應type屬性的值,而最後Container對應的是auth屬性的值。
下面根據剛才配置好的數據源做一個簡單獲取數據庫連接的測試,代碼如下:
package com.lm.dbmanager; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import javax.naming.InitialContext; import javax.naming.NamingException; import javax.sql.DataSource; public class GetConnectionTest { public static void main(String[] args) { InitialContext ctx; PreparedStatement pstmt = null; Connection conn = null; String sql = "select * from course"; try { ctx = new InitialContext(); /* * 在下面的字符串"java:comp/env/jdbc/course"中,*"java:comp/env/"是不變的, * 而"jdbc/course"大家應該還記得自己之前起的數據源名稱吧! */ DataSource ds = (DataSource) ctx.lookup("java:comp/env/jdbc/course"); conn = ds.getConnection(); pstmt = conn.prepareStatement(sql); ResultSet rs = pstmt.executeQuery(); System.out.println("課程編號 " + " 課程名"); System.out.println("--------------------"); while(rs.next()) { System.out.println("| "+rs.getInt(1) +" | " +rs.getString(2) + " |"); System.out.println("--------------------"); } } catch (NamingException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } } }