JNDI连接数据库

来源:互联网 发布:京东店铺数据查看插件 编辑:程序博客网 时间:2024/05/16 04:43

优点

实现了Java程序和配置文件的分离。将JDBC驱动程序的引用、服务器名称、用户名、密码这些信息交给J2EE容器配置和管理,程序员只需要对这些配置和管理进行引用即可。

实现步骤

1、在J2EE容器中配置JNDI参数;

2、程序中引用。

JBOSS下实现JNDI:

1、在JBOSS服务目录server/default/deploy下新建数据库配置文件xx.xml,配置文件内容如下:

<?xml version="1.0" encoding="UTF-8"?><datasources><local-tx-datasource><jndi-name>MZ_ORCL_Fujian</jndi-name>    <driver-class>oracle.jdbc.driver.OracleDriver</driver-class><connection-url>jdbc:oracle:thin:@192.168.60.61:1521:TEST</connection-url><user-name>username</user-name><password>password</password><min-pool-size>5</min-pool-size> <max-pool-size>30</max-pool-size>     <exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter</exception-sorter-class-name><metadata>         <type-mapping>Oracle9i</type-mapping></metadata></local-tx-datasource></datasources>

2、在Java程序中引用

  <body>    <%    InitialContext ctx = new InitialContext();DataSource dataSource = (DataSource) ctx.lookup("java:/MZ_ORCL_Fujian");Connection conn = dataSource.getConnection();    %>    <%=conn %>    <%    conn.close();    %>  </body>

因为由JBOSS服务管理数据库配置,所以具体测试要启动JBOSS服务,代码不可以脱离JBOSS服务单独测试。可以在JSP或者Servlet中书写测试。上面的代码书写在WEB服务的默认访问页面index.jsp中的。方便测试。

3、访问项目



JBOSS上部署项目,启动JBOSS服务,访问项目,执行结果如上。

TOMCAT下实现JNDI:

1、修改TOMCAT目录下配置文件conf/context.xml,如下:

<Context>    <!-- Default set of monitored resources -->    <WatchedResource>WEB-INF/web.xml</WatchedResource><!-- 根据实际情况修改 --><Resource        name="jdbc/test"        type="javax.sql.DataSource"        driverClassName="oracle.jdbc.driver.OracleDriver"        url="jdbc:oracle:thin:@192.168.60.61:1521:TEST"        username="username"        password="password"maxIdle="20"    maxWait="5000"/>    <!-- Uncomment this to disable session persistence across Tomcat restarts -->    <!--    <Manager pathname="" />    -->    <!-- Uncomment this to enable Comet connection tacking (provides events         on session expiration as well as webapp lifecycle) -->    <!--    <Valve className="org.apache.catalina.valves.CometConnectionManagerValve" />    --></Context>

2、修改web.xml配置文件,添加如下配置:

  <resource-ref>     <description>DB Connection</description>     <res-ref-name>jdbc/test</res-ref-name>     <res-type>javax.sql.DataSource</res-type>     <res-auth>Container</res-auth>  </resource-ref>  

其中,res-ref-name和context.xml配置文件中Resource元素的name属性值相同。
3、修改inex.jsp

  <body>    <%    InitialContext ctx = new InitialContext();DataSource dataSource = (DataSource) ctx.lookup("java:comp/env/jdbc/test");Connection conn = dataSource.getConnection();    %>    <%=conn %>    <%    conn.close();    %>  </body>

4、测试

在TOMCAT安装目录lib文件夹下面添加oracle的驱动,重新发布启动服务,测试通过。测试结果如下:

0 0
原创粉丝点击