基於 MySQL 和 SQL SERVER 下的 Tomcat 資料連線池的配置及應用示範

來源:互聯網
上載者:User

實際上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)
    {
    }

// 完成

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.