JNDI資料庫連接測試

來源:互聯網
上載者:User

最近寫了一個WEB項目發現只是使用JDBC資料庫,總是會出現“預登入”錯誤,原因就是因為資料庫連接的數目是有限的,所以使用JNDI串連資料庫就會解決上述問題,通過JNDI會建立一個資料庫連接池,在DataSource中事先建立了多個資料庫連接,這些資料庫連接儲存在串連池(Connect Pool)中。Java程式訪問資料庫時,只需要從串連池中取出空閑狀態的資料庫連接;當程式訪問資料庫結束,再將資料庫連接放回串連池。

以下是如何進行配置:

1,在Tomcat中配置:

 a.>tomcat 安裝目錄下的conf的context.xml 的

   <Context></Context>中

          <Resource name="jdbc/db_net" auth="Container"   type="javax.sql.DataSource" maxActive="10"
  maxIdel="10" maxWait="1000" username="lifan" password="sqllifan2005"
  driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
  url="jdbc:sqlserver://localhost:1434;Database=db_net">
 </Resource>

其中

      name 表示指定的jndi名稱

  auth 表示認證方式,一般為Container

  type 表示資料來源床型,使用標準的javax.sql.DataSource

  maxActive 表示串連池當中最大的資料庫連接

  maxIdle 表示最大的空閑串連數

  maxWait 當池的資料庫連接已經被佔用的時候,最大等待時間

  username 表示資料庫使用者名稱

  password 表示資料庫使用者的密碼

  driverClassName 表示JDBC DRIVER

  url 表示資料庫URL地址

b.>將相應的jar包拷貝到Tomcat伺服器下的lib目錄中,jar包名稱如下

      commons-dbcp.jar

      commons-pool.jar

      commons-collections-2.1.jar

 

 c.>獲得Connection對象的代碼如下

      import javax.naming.Context;
      import javax.naming.InitialContext;
      import javax.sql.DataSource;

 

 

      private static Connection cn = null;

 /*
  * 得到Connection對象
  */
    private void getConnection() {
     try {
            Context context = new InitialContext();
            DataSource ds = (DataSource)context.lookup  ("java:/comp/env/jdbc/db_net");//jdbc/db_net是上面name屬性的值
           cn = ds.getConnection();
          } catch (Exception e) {
                   e.printStackTrace();
          }
    }

 

 

2.但是如果你的Tomcat下有多個apps,只想對特定的項目進行JNDI的配置所以你應該在webRoot下的META-INT目錄下建立context.xml檔案,在上面的content內容中再添加一條語句factory="org.apache.commons.dbcp.BasicDataSourceFactory"

同時將上面的jar包拷貝到webRoot下的WEB-INFO下的lib目錄中

擷取Connection對象的代碼保持不變

 

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.