日期:2014-05-16  浏览次数:20457 次

Java项目中使用JNDI连接数据库
开发环境为Java,SpringMVC,Maven,应用服务器为Tomcat.配置JDNI步骤为:
1,在Tomcat中,修改server.xml(conf文件夹中)
在 GlobalNamingResources 节点下增加如下配置
   <Resource name="jdbc/my"
     factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
     auth="Container"
     type="javax.sql.DataSource"
     url="jdbc:mysql://**.**.**.**:3306/**"
     driverClassName="com.mysql.jdbc.Driver"
     username="**"
     password="**"
     initialSize="30"
     minIdle="5"
     maxIdle="50"
     maxActive="100"
     maxWait="10000"
     jmxEnabled="true"
     testOnBorrow="true"
     testWhileIdle="true"
     validationQuery="select 1"
     validationInterval="30000" />

其中jdbc/my是JNDI的名字,在spring配置中使用.
2,修改context.xml(conf文件夹中)配置文件如下:
在 Context 节点下增加如下配置
<ResourceLink global="jdbc/my" name="jdbc/my" type="javax.sql.DataSource"/>

3,修改项目中数据库连接方式
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName">
<value>java:comp/env/jdbc/my</value>
</property>
   </bean>

4,把mysql的驱动程序放在Tomcat安装目录的lib目录中,此时可以删除在pom.xml中的驱动程序.

到此JNDI的配置就完成了.
1 楼 iwangxiaodong 2012-09-06  
JNDI确实比较规范,适合中大型项目采用,其他数据库连接字符串请参考: JDBC主流数据库连接字符串
2 楼 panhaixin 2012-09-06  
JNDI只能在Tomcat5中配置,复制到Tomcat6中吧?