天天看點

JNDI配置過程

JNDI配置步驟:

  1.JNDI是 java naming and directory interface  作用是用來完成從伺服器(tomcat)中查詢資料源,與以往的JDBC的使用不太相同,但是JNDI的作用恰恰幫我們完成了JDBC的獲得Connection對象的步驟。

  2.JDBC獲得是一個連接配接對象,但是JNDI是幫我們獲得一個資料池,資料池中有多個連接配接,我們可以任意獲得一個連接配接,是以JNDI在完成資料庫連接配接時能夠提供資料庫連接配接一個限定等配置!!

   具體步驟如下:

   1.配置伺服器(tomcat)的conf/context.xml檔案

     添加如下節點:

     <Resource

          name="jdbc/books"          資料源名稱

          auth="Container"           資料源由伺服器建立

          type="javax.sql.DataSource"

          maxActive="100"

          maxIdle="30"

          maxWait="10000"

          username="test"

          password="123456"

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

          url="jdbc:sqlserver://localhost:1433;databasename=資料庫名字"

      />

     2.添加JAR包到tomcat安裝目錄下的lib檔案夾下

     3.配置web.xml檔案

     <resource-ref>

      <res-ref-name>jdbc/books</res-ref-name> 這個值是要和conf/context.xml檔案中name屬性值相同

      <res-type>javax.sql.DataSource</res-type>

      <res-auth>Container</res-auth>

     </resource-ref>

    通過以上幾步的配置基本完成。

    剩下就是測試代碼:

    try {

      Context ctx = new InitialContext();

      //此處要添加的是查找資料源的名字  但是要加字首java:comp/env

      DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/books");

      Connection conn = ds.getConnection();   //通過資料源獲得資料源中的連接配接

      String sql = "select * from person";

      PreparedStatement pstmt = conn.prepareStatement(sql);

      ResultSet rs = pstmt.executeQuery();

      while(rs.next()){

         System.out.println(rs.getString(1));

      }

   } catch (Exception e) {

      e.printStackTrace();

   }

   注意:以上測試代碼需要寫在servlet中,因為資料源對象是在伺服器(tomcat)中加載建立的,是以啟動tomcat後會自動建立dataSource對象