Tomcat數據源

      數據庫的使用中一定會有四個步驟,那就是:(1)、註冊驅動,(2)、數據庫的連接,(3)、數據庫的操作,(4)、數據庫的關閉。然而在這四個步驟中,(1)(2)(4)往往是一樣的,只有(3)是不一樣的,也就是說會有很多的重複,在使用中這樣就會影響到系統的性能,爲了提高系統的性能,所以就產生了Tomcat數據源(當然,除了有Tomcat實現連接池之外,還有其他實現數據庫連接池的組件),其核心原理是:在一個對象池中保存多個數據庫的連接,這樣在以後進行數據庫的連接時,直接在連接池中取出一個數據庫的連接,當數據庫的操作完成之後,再將此連接放回到數據庫的連接池中,等待其他用戶的繼續使用。    

    先看一下如何配置數據庫的連接池:即在server.xml文件中配置一個Mysql數據庫連接池,配置語句如下:
    
  1. <Context path="/demo" docBase="D:\webDemo" reloadable="true"> 
  2.         <Rersource  
  3.             name="jdbc/mldn"                          <-- 配置一個名稱爲jdbc/mldn的數據庫連接池資源 --> 
  4.             auth="Coontainer"                         <-- 負責資源連接的容器 --> 
  5.             type="javax.sql.DataSource"               <-- 此數據庫名稱對應的類型是DataSource --> 
  6.             maxActive="100"                           <-- 可以打開的最大連接數 --> 
  7.             maxldle="30"                              <--可以維持的最小連接數--> 
  8.             maxWait="10000"                           <-- 用戶等待的最大時間 --> 
  9.             username="root"                           <-- 數據庫用戶名 --> 
  10.             password="Cselmu09"                       <-- 數據庫密碼 --> 
  11.             driverClassName="com.mysql.jdbc.Driver"   <-- 數據庫驅動程序 --> 
  12.             url="jdbc:mysql://localhost:3308/mldn"/>  <-- 數據庫的url值 --> 
  13.     </Context>  
    在web容器中,數據庫的連接池都是通過數據源(javax.sql.DataSource)訪問的,即可以通過javax.sql.DataSource類取得一個Connection對象,但是要想得到一個DataSource對象需要使用到JNDI(Java Naming and Directory Interface,即Java命名及目錄接口)進行查找。
    配置web.xml文件:
     
  1.  <resource-ref> 
  2.     <res-ref-name>jdbc/mldn</res-ref-name> 
  3.     <res-type>javax.sql.DataSource</res-type> 
  4.     <res-auth>Container</res-auth>  
  5. </resource-ref> 
    datasource.jsp

    

  1.  <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> 
  2. <%@page import="java.sql.Connection"%> 
  3. <%@page import="javax.sql.DataSource"%> 
  4. <%@page import="javax.naming.Context"%> 
  5. <%@page import="javax.naming.InitialContext"%> 
  6. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
  7. <html> 
  8. <head> 
  9. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
  10. <title>Insert title here</title> 
  11. </head> 
  12. <body> 
  13. <
  14.     String DSNAME = "java:comp/env/jdbc/mldn"; //JNDI名稱 
  15.     Context ctx = new InitialContext(); 
  16.     DataSource ds = (DataSource)ctx.lookup(DSNAME); 
  17.     Connection conn = ds.getConnection(); 
  18.     %> 
  19.     <h3>數據庫的連接對象如下:<br><%=conn%></h3> 
  20. <
  21. conn.close(); 
  22. %> 
  23. </body> 
  24. </html> 
    由上面的例子知道取得數據庫連接的步驟:
  1. (1)、定義好JNDI名稱:String DSNAME = "java:comp/env/jdbc/mldn"; //JNDI名稱 
  2. (2)、初始化查找上下問的Context對象:Context ctx = new InitialContext(); 
  3. (3)、通過JNDI名稱查找DataSource對象:DataSource ds = (DataSource)ctx.lookup(DSNAME); 
  4. (4)、最後通過DataSource對象取得數據庫連接對象:Connection conn = ds.getConnection(); 
 
    


    
 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章