java:comp/env/jdbc/ 的两种配置方法

1. 在 META-INF 下建立文件: context.xml

<?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource auth="Container" delegateProperties="foo=bar"
factory="org.logicalcobwebs.proxool.ProxoolDataSource" name="jdbc/xxxDB" password="xxxx"
proxool.alias="proxool_juncsoftDB" proxool.driver-class="com.microsoft.sqlserver.jdbc.SQLServerDriver"
proxool.driver-url="jdbc:sqlserver://localhost;integratedSecurity=true;DatabaseName=Kxxxjuxxxcsoft"
proxool.house-keeping-sleep-time="600000" proxool.maximum-connection-count="30"
proxool.minimun-connection-count="8" proxool.prototype-count="5"
type="javax.sql.DataSource" user="BRAMFCQF3Q9OQ5H\Administrator"/>
</Context>

然后 在 hibernate就可以引用:

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <hibernate-configuration>
<session-factory> <property name="connection.datasource">java:comp/env/jdbc/juncsoftDB</property> <property name="dialect">
org.hibernate.dialect.SQLServerDialect
</property>
    <property name="connection.datasource">java:comp/env/jdbc/xxxDB</property>

这样就可以 根据 jndi 找到 context.xml 中配置的 数据库连接信息。其实起到了一个 间接 的 隔离 的效果。

2. 在Tomcat的server.xml 文件中 <Host> 元素下 加入:

          <Context antiJARLocking="false" antiResourceLocking="false" cookies="true" crossContext="true" docBase="xxxx" path="/xxxx" privileged="true" reloadable="true" source="org.eclipse.jst.j2ee.server:xxxx">

            <Resource auth="Container" delegateProperties="foo=bar" factory="org.logicalcobwebs.proxool.ProxoolDataSource" name="jdbc/xxxDB" password="digdeep" proxool.alias="proxool_xxxxDB" proxool.driver-class="com.microsoft.sqlserver.jdbc.SQLServerDriver" proxool.driver-url="jdbc:sqlserver://localhost;integratedSecurity=true;DatabaseName=xxxxsoft" proxool.house-keeping-sleep-time="600000" proxool.maximum-connection-count="10" proxool.minimun-connection-count="8" proxool.prototype-count="5" type="javax.sql.DataSource" user="xxx\Administrator"/>

        </Context>

这里采用了 windows 认证的登录sql server的方式。

但是直接修改 tomcat 中的 server.xml 会被 eclipse 在发布时,所覆盖。所以我们应该修改 eclipse 中的 Server 中 server.xml 。发布时,eclipse 会使用自己的 Server 中的 server.xml 覆盖tomcat中的server.xml文件。

个人推荐在开发时推荐第一种方式,因为不会影响eclipse中的其他的项目。

上一篇:Linux学习-linux系统下python升级到python3.6步骤详解,以及遇到的问题解决


下一篇:RabbitMQ消息队列名词解释[转]