JSP学习笔记(七十四):以JNDI的方式连接数据库
1.WEB容器的配置
(一)、 Tomcat 5.5服务器的配置:
打开Tomcat Home/conf/context.xml,添加内容到<Context>节点下:
<Context>
<Resource name="jdbc/dbname"
type="javax.sql.DataSource"
driverClassName="oracle.jdbc.driver.OracleDriver"
maxIdle="2"
maxWait="5000"
username="user"
password="******"
url="jdbc:oracle:thin:@127.0.0.1:1521:orcl"
maxActive="10"/>
</Context>
我使用的是oracle,添加oracle的jar包到 Tomcat Home/common/lib文件夹下,其他数据库的方法一样
(二)、WebLogic9.2服务器的配置:
进入http://127.0.0.1:7001/console控制台,Services->JDBC->Data Sources,新建一个JNDI,JNDI Name为jdbc/dbname,Database Type为Oracle,一路下一步,然后输入Database Name:orcl,Host Name:127.0.0.1,Port:1521,Database User Name:user,Password:******
2.Spring配置
使用jdbc连接数据库时,配置文件为:
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName"
value="${jdbc.driverClassName}">
</property>
<property name="url" value="${jdbc.url}"></property>
<property name="username" value="${jdbc.username}"></property>
<property name="password" value="${jdbc.password}"></property>
</bean>
使用jndi连接数据库,需要改为如下:
(一)、Tomcat 5.5
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName">
<value>java:comp/env/jdbc/dbname</value>
</property>
</bean>
(二)、WebLogic 9.2
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName">
<value>jdbc/dbname</value>
</property>
</bean>
或者:
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName">
<value>jdbc/dbname</value>
</property>
<!-- 如果你不想使用 'java:comp/env/'前缀的话请设置下面的值为true, 默认值为false -->
<property name="resourceRef">
<value>false</value>
</property>
<property name="jndiEnvironment">
<props>
<!-- The value of Context.PROVIDER_URL -->
<prop key="java.naming.provider.url">t3://localhost:7001</prop>
<prop key="java.naming.factory.initial">weblogic.jndi.WLInitialContextFactory</prop>
</props>
</property>
</bean>
摘抄网上部分如下:
详细情况参考:javax.naming.Context类的说明文档。
http://java.sun.com/j2se/1.4.2/docs/api/javax/naming/Context.html
以下是各种应用服务器的不同的properties集合:
websphere:
java.naming.provider.url->iiop://websphere.machine.domain.com:900
java.naming.factory.initial ->com.ibm.websphere.naming.WsnInitialContextFactory
java.naming.factory.url.pkgs ->com.ibm.ws.naming
org.omg.CORBA.ORBClass->com.ibm.rmi.iiop.ORB
org.omg.CORBA.ORBSingletonClass->com.ibm.rmi.corba.ORBSingleton
javax.rmi.CORBA.UtilClass->com.ibm.rmi.javax.rmi.CORBA.Util
javax.rmi.CORBA.StubClass->com.ibm.rmi.javax.rmi.CORBA.StubDelegateImpl
javax.rmi.CORBA.PortableRemoteObjectClass->com.ibm.rmi.javax.rmi.PortableRemoteObject
weblogic:
java.naming.factory.initial -> weblogic.jndi.WLInitialContextFactory
java.naming.provider.url -> t3://localhost:7001
jboss:
ava.naming.factory.initial ->org.jnp.interfaces.NamingContextFactory
java.naming.factory.url.pkgs->org.jboss.naming.client
java.naming.provider.url ->jnp://10.0.0.18:1099
sunone IMQ ldap:
java.naming.provider.url -> ldap://localhost:389/dc=yusong,dc=com
java.naming.factory.initial -> com.sun.jndi.ldap.LdapCtxFactory
sunone Application Server:
java.naming.provider.url -> iiop://192.168.0.34:3700
java.naming.factory.initial -> com.sun.jndi.cosnaming.CNCtxFactory
oracle oc4j:
java.naming.factory.initial->com.evermind.server.ApplicationClientInitialContextFactory
java.naming.provider.url->ormi://localhost/bmpapp