在tomcat中配置JNDI數據源 .

在tomcat5.0中配置數據源(全局數據源、局部數據源),經過鏈接池機制鏈接數據庫java

1.     odbc-jdbc橋連web

2.     經過加載本地驅動鏈接spring

3.     在web應用服務器中設置數據源,經過池接技術鏈接數據庫(加載本地驅動)sql

4.     在框架中設置數據源,經過內置鏈接池或者集成外部鏈接池與數據庫交互 數據庫

 

Tomcat全局數據源的設置:tomcat

1.     啓動tomcat服務器,登錄admin服務器控制檯,點擊【Resources】-》【Data Sources】,選擇【create new Data Source】, 服務器

輸入相關的信息,點擊保存(save),提交變化(commit change),將信息添加到 server.xml文件中。框架

2.     編寫應用程序,獲取數據源,鏈接數據庫,將web應用部署到web容器中sqlserver

初始化jndi的上下文接口this

      this.context = new InitialContext();

      //查找數據源

    //java:comp/env 目錄是java默認的命名 空間

  //hygj 名字是資源連接名,不是全局資源的jndi名

      

  this.ds = (DataSource) this.context.lookup("java:comp/env/hygj");

3.     登錄admin服務器控制檯,給部署的web應用配置資源鏈接

點擊【service】-》【host】--》【Context】-》【resource-links】-》【create new resource link】

Name: 資源鏈接名

Global:是全局資源的jndi名

Type:全局資源的類型

 

注意的問題,將鏈接數據庫是所需的jar文件,放到tocmat—》common—》lib目錄中

局部數據源的設置: 是某個web應用的私有數據源,不能別其餘的web應用使用

1.     編寫應用程序,獲取數據源,鏈接數據庫,將web應用部署到web容器中

//hygj 名字是局部資源的jndi名

    this.ds = (DataSource) this.context.lookup("java:comp/env/hygj");

2.     啓動tomcat服務器,登錄控制檯,打開localhost虛擬主機,找到發佈的web應用所對應的context,在context的resources中

點擊data sources ,建立一個局部數據源

 

Tomcat6 配置全局數據源和局部數據源

局部數據源的建立:

1.     建立web應用,在WebRoot目錄的META-INFO目錄中建立context.xml文件,在此文件中設置局部數據源,在代碼中使用Context

上下文尋找數據源。

<Context>

  <Resource

    name="jndi/qulx" //資源的jndi名字

    type="javax.sql.DataSource" //資源類型

  driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"

  url="jdbc:microsoft:sqlserver://localhost:1433;databasename=qulx"

    username="sa"

    password="sa"

    maxActive="10" //鏈接池中活動的鏈接數的最大數量

    maxIdle="5" //最大的空閒鏈接數的數量

    maxWait="5000" //響應的最大時間,超時失效

  />

</Context>

2.     無論是局部數據源仍是全局數據源,代碼中的jndi/qulx就是數據源的jndi名稱

this.context = new InitialContext();

      this.ds = (DataSource) this.context.lookup("java:comp/env/jndi/qulx");

注意的問題,將鏈接數據庫是所需的jar文件,放到tocmat—》lib目錄中,同時將pool.jar也要放進去

 

 

********************************************************************************************

 

eg:

     在tomcat的控制檯中,配置對應的參數

     1。 在Resources->dataSource中配置對應的數據源,命名以 jdbc/名字 爲好

 

     2。 在Services->Host->Context(/項目名字)->DataSources/Resource links 也須要配置對應的 參數便可。

 

     3。 在Java代碼中,編寫以下:

      

  1. //執行JNDI的方法   
  2. public static void testJNDI() throws Exception {  
  3.       
  4.     Context ctx = new InitialContext();  
  5.     DataSource ds = (DataSource) ctx.lookup("java:comp/env/jdbc/springtest");  
  6.     Connection conn = ds.getConnection();  
  7.     String sql = "select * from discounts";  
  8.     ResultSet rs = executeQuery(sql,conn);  
  9.     while(rs.next()) {  
  10.         System.out.println(rs.getString("storid"));  
  11.     }  
  12. }  
//執行JNDI的方法 public static void testJNDI() throws Exception { Context ctx = new InitialContext(); DataSource ds = (DataSource) ctx.lookup("java:comp/env/jdbc/springtest"); Connection conn = ds.getConnection(); String sql = "select * from discounts"; ResultSet rs = executeQuery(sql,conn); while(rs.next()) { System.out.println(rs.getString("storid")); } }

 

     4。 在web.xml中編寫以下代碼:

      

  1. <resource-ref>  
  2.   <description>DB Connection</description>  
  3.   <res-ref-name>jdbc/springtest</res-ref-name>  
  4.   <res-type>javax.sql.DataSource</res-type>  
  5.   <res-auth>Container</res-auth>  
  6. t;/resource-ref>  
<resource-ref> <description>DB Connection</description> <res-ref-name>jdbc/springtest</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref>

 

 

      5。 最後在JSP頁面中調用相應的服務便可。

相關文章
相關標籤/搜索