實際上MySQL和SQL SERVER 兩種資料庫連接方式非常非常類似
編碼格式使用 URIEncoding="UTF-8"各位可根據自己的需要設定成GBK或者GB2312,但我個人強烈建議全部統一為
UTF-8
先例舉MySQL資料連線池設定:
1.將 mysql 的驅動檔案mysql.jar複製到tomcat/lib錄
2.編輯 web 應用中的目錄 META-INF/context.xml 檔案,內容如下
<Context path="/webapp" URIEncoding="UTF-8">
<Resource name="jdbc/myjdbc"
auth="Container"
description="DB Connection"
driverClassName="com.mysql.jdbc.Driver"
maxActive="500"
maxIdle="30"
maxWait="10000"
type="javax.sql.DataSource"
username="sqluser1"
password="123456"
url="jdbc:mysql://192.168.1.2:3306/mydb?autoReconnect=true"
/>
</Context>
webapp:你的應用程式名稱
mydb:MySQL 內 Database 的名稱
com.mysql.jdbc.Driver:所使用的驅動,來自倒入的 mysql 的 jar 檔案
3.編輯 web 應用中的目錄 WEB-INF/web.xml 內容如下
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/myjdbc</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
至此,針對 MySQL 的資料連結池配置完成
例舉 SQL SERVER 資料連線池設定:
1.將 sqlserver 的驅動檔案 sqljdbc.jar複製到
tomcat/lib 錄
2.編輯 web 應用中的目錄 META-INF/context.xml 檔案,內容如下
<?xml version="1.0" encoding="UTF-8"?>
<Context path="/webapp1" URIEncoding="UTF-8">
<Resource
description="DB Connection"
driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
maxActive="500"
maxIdle="30"
maxWait="10000"
name="jdbc/msjdbc"
auth="Container"
type="javax.sql.DataSource"
username="sqluser2"
password="123456"
url="jdbc:sqlserver://localhost:1433;databaseName=mydb"
/>
</Context>
3.編輯 web 應用中的目錄 WEB-INF/web.xml 內容如下
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/msjdbc</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
至此,針對 SQL SERVER 的資料連結池配置完成,使用微軟JDBC1.2版本,同時相容2000和2005,本人實際測試通過。
串連池調用部分代碼如下:
import java.sql.*;
import javax.sql.*;
import javax.naming.*;
...
...
Connection con;
Statement stmt;
ResultSet rs;
try
{
// 串連資料庫
Context ctx = new InitialContext ();
// 以下兩種串連方式根據串連MySQL還是SQLSERVER來決定採用,只選擇其中一種
DataSource ds = (DataSource) ctx.lookup ("java:comp/env/jdbc/myjdbc"); // MySQL 使用
DataSource ds = (DataSource) ctx.lookup ("jdbc/msjdbc"); // SQLSERVER 使用
con = ds.getConnection ();
// 建立 JDBC 申明
stmt = con.createStatement ();
/* stmt = con.createStatement (ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); // sql server 下如果存在 last 或者 first 方法則使用 */
try
{
// SQL 命令構建
String SqlCmdText = "select * from message_text";
// 執行SQL命令
rs = stmt.executeQuery (sqlCmdSelect);
// 遍曆所有記錄
while ( rs.next()
{
String OutText = rs.getString("fieldname");
......
......
}
// 資源釋放
if ( rs != null )
{
rs.close ();
}
}
catch (Exception e)
{
}
// 資源釋放
if (stmt != null)
{
stmt.close ();
}
if (con != null)
{
con.close ();
}
}
catch (Exception e)
{
}
// 完成