JNDI连接数据库

优点

实现了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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值