1,JNID在这不介绍了,网上一大堆。
2,在eclipse配置JNDI(以tomcat为例)
2.1,在eclipse中添加 tomcat server的时候,会自动创建一个Servers的项目,这个项目管理添加的tomcat
2.2,配置jndi,需要修改servers项目的Context.xml
name:表示以后要查找的名称。通过此名称可以找到DataSource,此名称任意更换,但是程序中最终要查找的就是此名称,
为了不与其他的名称混淆,所以使用jdbc/oracle,现在配置的是一个jdbc的关于oracle的命名服务。
auth:由容器进行授权及管理,指的用户名和密码是否可以在容器上生效
type:此名称所代表的类型,现在为javax.sql.DataSource
maxActive:表示一个数据库在此服务器上所能打开的最大连接数
maxIdle:表示一个数据库在此服务器上维持的最小连接数
maxWait:最大等待时间。10000毫秒
username:数据库连接的用户名
password:数据库连接的密码
driverClassName:数据库连接的驱动程序
url:数据库连接的地址
<!--配置Oracle数据库的JNDI数据源-->
<Resource
name="jdbc/oracle"
auth="Container"
type="javax.sql.DataSource"
maxActive="100"
maxIdle="30"
maxWait="10000"
username="chp"
password="Sa123456"
driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@localhost:1521:orcl"/>
<!--配置MySQL数据库的JNDI数据源-->
<Resource
name="jdbc/mysql"
auth="Container"
type="javax.sql.DataSource"
maxActive="100"
maxIdle="30"
maxWait="10000"
username="chp"
password="Sa123456"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://192.168.0.200:3306/test?useUnicode=true&characterEncoding=utf-8"/>
2.3 配置web.xml
2.3.1,如果配置全局的JNDI,在servers项目下的web.xml,添加如下代码
2.3.2,如果不是配置全局的JNDI,在本项目下的web.xml,添加如下代码
res-ref-name:表示引用资源的名称
res-type:此资源对应的类型为javax.sql.DataSource
res-auth:容器授权管理
<!--Oracle数据库JNDI数据源引用 -->
<resource-ref>
<description>Oracle DB Connection</description>
<res-ref-name>jdbc/oracle</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
<!--MySQL数据库JNDI数据源引用 -->
<resource-ref>
<description>MySQL DB Connection</description>
<res-ref-name>jdbc/mysql</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
<!-- end -->
2.4,配置数据源,只需将数据源指向JNDI即可
<!--jndi的方式 -->
<bean id="dataSource" name="default" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="java:comp/env/jdbc/mysql" />
</bean>