您的位置:首页 > 数据库

JNDI数据库连接池配置

2016-06-30 16:52 246 查看
[b]JNDI数据库连接池配置  [/b]



   JNDI(Java Naming and Directory Interface,Java命名和目录接口)是一组在Java应用中访问命名和目录服务的API。命名服务将名称和对象联系起来,使得我们可以用名称

 

访问对象。目录服务是一种命名服务,在这种服务里,对象不但有名称,还有属性。

 

tomcat配置jndi有全局配置和局部配置。

0)      先在项目中导入jar包

注意:jdk的版本跟tomcat的版本要一致。

 

第一种:全局配置  

1)在tomcat的conf文件夹下的context.xml配置文件中加入:

<Resource

name="sqlconn"

       auth="Container"

type="javax.sql.DataSource" driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"  url="jdbc:sqlserver://localhost:1433;databasename=Test "

       username="sa"

       password="123456"

       maxActive="20"

       maxIdle="10"

       maxWait="10000"/>

 

2)在项目的web.xml中加入资源引用:

<resource-ref>

  <description>JNDI DataSource</description>

  <res-ref-name>sqlconn</res-ref-name>

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

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

</resource-ref>

 

3)在jsp中调用加载jndi方式,不可以直接用main方法测试,必须通过启动容器从jsp中调用:

             

 

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>

<%@ page import="java.sql.*"%>

<%@ page import="javax.sql.*"%>

<%@ page import="javax.naming.*"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD
HTML 4.01 Transitional//EN">

<html>

<head>

<title>JNDI
Test</title>

</head>

<body>

    <%

       Context ctx = new InitialContext();

       Context envctx = (Context) ctx.lookup("java:comp/env");

       DataSource ds = (DataSource) envctx.lookup("sqlconn");

       Connection conn = ds.getConnection();

       Statement st = conn.createStatement();

       String sql = "select * from t_student";

       ResultSet rs = st.executeQuery(sql);

       while (rs.next())
{

    %>

    您的第一个字段内容为:<%=rs.getInt(1)%>

    您的第二个字段内容为:<%=rs.getString(2)%>

    您的第三个字段内容为:<%=rs.getString(3)%>

    <br>

    <%

       }

    %>

    <%

       out.print("使用jdbc驱动操作数据库操作成功,恭喜你");

    %>

    <%

       rs.close();

       st.close();

       conn.close();

    %>

</body>

</html>

 

 

第二种:局部配置。

1)在项目的META-INFO下面新建context.xml。加入:

<?xml version="1.0" encoding="UTF-8"?>

<Context>

       <Resource

name="sqlconn"

              auth="Container"

              type="javax.sql.DataSource"

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

url="jdbc:sqlserver://localhost:1433;databasename=Test"

              username="sa"

              password="123456"

              maxActive="20"

              maxIdle="10"

              maxWait="10000"/>     

</Context>

 

其他配置同第一种方式。

 

 

第三种:局部配置(不推荐)。

1)在tomcat的server.xml的<host>标签内,添加:

              <Context path="/slesson3" docBase="/slesson3">

                 <Resource

                      name="sqlconn"

                      type="javax.sql.DataSource"

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

                      maxIdle="2"

                      maxWait="5000"

                      username="sa"

                      password="sa123"

                      url="jdbc:sqlserver://localhost:1433;databasename=Test"

                      maxActive="4"/>

              </Context>

其他配置同第一种方式。

 

 

 

 

总结:如果要配置局部的话,推荐使用第二种方式,这样不依赖tomcat了。但是还是推荐使用第一种方式好,虽然依赖tomat,但是是全局的,而且可以配置多个。对于以后切换使用方便。

在项目的web.xml中添加的资源引用可有可无。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: