Tomcat6.0數據庫連接池配置實例(mysql數據庫)
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"http://這里用到的是mysql數據庫的驅動包。
url="jdbc:mysql://localhost/course" //這里是連接到mysql數據庫的url,其中url="jdbc:mysql://localhost/"是固定的,而course是我這個 //項目的數據庫名稱,所以這里改為你們的數據庫名稱就好了。
username="root"http://登陸數據庫的用戶名
password="birchhua" //登陸數據庫的密碼
maxIdle="5"http://這個也默認就好了
maxWait="5000"http://這個也默認就好了
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屬性的值。
第三步:上網下載一個叫mysql-connector-java-3.1.10-bin.jar的jar包,然后將該jar包放到TomCat安裝目錄下的lib文件夾里。(例如:D:\Tomcat 6.0\lib\mysql-connector-java-3.1.10-bin.jar)完成這三步就配置好了TomCat數據源了。
下面根據剛才配置好的數據源做一個簡單獲取數據庫連接的測試,代碼如下: 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();
}
}
}