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中的其他的項目。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM