配置JDNI
JNDI相对与JDBC来说是他的灵活性,程序员不需要关心“具体的数据库后台是什么?JDBC驱动程序是什么?JDBC URL格式是什么?访问数据库的用户名和口令是什么?”等等这些问题,程序员编写的程序应该没有对 JDBC 驱动程序的引用,没有服务器名称,没有用户名称或口令 —— 甚至没有数据库池或连接管理。而是把这些问题交给J2EE容器来配置和管理,程序员只需要对这些配置和管理进行引用即可。
编辑应用服务器conf目录下的context.xml,在<Context>和</Context>之间加入以下配置:
<Resource auth="Container" driverClassName="oracle.jdbc.driver.OracleDriver" maxActive="250" maxIdle="40" maxWait="4000" name="jdbc/sasDS" password="sas" type="javax.sql.DataSource" url="jdbc:oracle:thin:@192.168.2.103:1521:ORCL" username="sas"/>
修改applicationContext.xml
<!-- production/local development环境 --> <!-- <beans profile="production,development"> <context:property-placeholder ignore-unresolvable="true" location="classpath*:/application.properties, classpath*:/application.local.properties" /> 数据源配置, 使用应用中的DBCP数据库连接池 <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> Connection Info <property name="driverClassName" value="${jdbc.driver}" /> <property name="url" value="${jdbc.url}" /> <property name="username" value="${jdbc.username}" /> <property name="password" value="${jdbc.password}" /> Connection Pooling Info <property name="maxActive" value="${dbcp.maxActive}" /> <property name="maxIdle" value="${dbcp.maxIdle}" /> <property name="defaultAutoCommit" value="false" /> 连接Idle一个小时后超时 <property name="timeBetweenEvictionRunsMillis" value="3600000" /> <property name="minEvictableIdleTimeMillis" value="3600000" /> </bean> 数据源配置,使用应用服务器的数据库连接池 <jee:jndi-lookup id="dataSource" jndi-name="jdbc/sasDS" /> </beans> --> <jee:jndi-lookup id="dataSource" jndi-name="jdbc/sasDS" />
在web.xml中加入以下内容:
<resource-ref> <description>Oracle DataSource</description> <res-ref-name>jdbc/sasDS</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref>
最后在eclipse->server修改server的配置:
1)先将server删除
2)重新加入tomcat服务器,并将我们的项目加入tomcat服务器
3)双击tomcat服务器,修改Server Location
选择Use Tomcat installation,并将Deploy path 改为webapps