天天看点

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对象