方法1:后台修改配置文件
修改Tomcat_Home/conf/server.xml,在GlobalNamingResources中加入:
Xml代码
1. <Resource name="jdbc/DataSource" auth="Container"
2. type="javax.sql.DataSource" driverClassName="oracle.jdbc.OracleDriver"
3. url="jdbc:oracle:thin:@127.0.0.1:1521:orcl"
4. username="user" password="password" maxActive="20" maxIdle="10"
5. maxWait="-1"/>
<Resource name="jdbc/DataSource" auth="Container"
type="javax.sql.DataSource" driverClassName="oracle.jdbc.OracleDriver"
url="jdbc:oracle:thin:@127.0.0.1:1521:orcl"
username="user" password="password" maxActive="20" maxIdle="10"
maxWait="-1"/>
再在Context中加入引用:
Xml代码
1. <ResourceLink name="jdbc/DataSource" global="jdbc/DataSource" type="javax.sql.DataSource"/>
<ResourceLink name="jdbc/DataSource" global="jdbc/DataSource" type="javax.sql.DataSource"/>
如果不加,则在使用的时候会出现:Cannot create JDBC driver of class '' for connect URL 'null' 错误
在web.xml定义:
Xml代码
1. <resource-ref>
2. <description>popuserDataSource</description>
3. <res-ref-name>jdbc/DataSource</res-ref-name>
4. <res-type>javax.sql.DataSource</res-type>
5. <res-auth>Container</res-auth>
6. </resource-ref>
<resource-ref>
<description>popuserDataSource</description>
<res-ref-name>jdbc/DataSource</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
在Spring中引用:
Xml代码
1. <bean id="DataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
2. <property name="jndiName" value="java:comp/env/jdbc/DataSource"/>
3. <property name="expectedType" value="javax.sql.DataSource"/>
4. </bean>
<bean id="DataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="java:comp/env/jdbc/DataSource"/>
<property name="expectedType" value="javax.sql.DataSource"/>
</bean>
完成。
方法2:
TOMCAT 4.1 与TOMCAT 5.5以上版本(我只用过5.5 和6.0)配置数据源是有区别的小弟在此写哈
(记得将驱动包放到common\lib文件夹下)
TOMCAT 4.1是将Resoucre配置参数都看做是元素来配置的
而TOMCATE5.5以后都是把参数当作Resource元素的属性来配置的,
还要注意的4.1中 的 <factory>元素在5.5以后就没有了。
》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》
来看看4.1是如何配置的 在TOMCAT 目录conf文件夹下找到server.xml再找到</host>元素将下面的代码写到
</HOST>元素前面即可:
<Context path="/mas" docBase="D:/web/voteTest/WebRoot" debug="0"
reloadable="true" crossContext="true">
<Logger className="org.apache.catalina.logger.FileLogger"
timestamp="true"/>
<Resource name="jdbc/mas" auth="Container" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/mas">
<parameter>//在5.5以后就没有这个元素了如果存在就会报错
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<parameter>
<name>testonborrow </name>
<value>true</value>
</parameter>
<parameter>
<name>testonreturn </name>
<value>true</value>
</parameter>
<parameter>
<name>testwhileidle</name>
<value>true</value>
</parameter>
<parameter>
<name>removeAbandoned</name>
<value>true</value>
</parameter>
<parameter>
<name>removeAbandonedTimeout</name>
<value>100</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>100</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>30</value>
</parameter>
<parameter>
<name>maxWait</name>
<value>10000</value>
</parameter>
<parameter>
<name>username</name>
<value>wsq</value>
</parameter>
<parameter>
<name>password</name>
<value>wsq</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>oracle.jdbc.driver.OracleDriver</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:oracle:thin:@192.168.3.177:1521:masenv</value>
</parameter>
</ResourceParams>
</Context>
》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》
tomcat 6.0配置数据源:
方法1:
直接在tomcat server.xml中配置将下面这段话写在serverl.xml 中</host>之前
<Context path="/mas" docBase="D:/web/voteTest/WebRoot" debug="0" reloadable="true" crossContext="true">
<Resource name="jdbc/mas"
auth="Container"
type="javax.sql.DataSource"
driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@192.168.3.177:1521:masenv"
username="wsq" password="wsq"
maxIdle="20" maxWait="5000"
maxActive="100" removeAbandoned="true"
removeAbandonedTimeout="60" logAbandoned="true"
/>
</Context>
解释一下:1.path是指定访问该web应用的URL入口;
2.docBase指定web应用的文件路径,可以是绝对路径,也可以是相对于Host的appBase属性的相对路径;
3.type指定Resource所属的JAVA类名
4.maxActive是DBCP中处于活动状态的数据库连接的最大数目,取0表示不受限制
5.maxIdle是DBCP中处于空闲状态的数据库连接的最大数目,取0表示不受限制
6.maxWait是是DBCP中的数据库连接处于空闲状态的最长时间(以毫秒为单位)取0表示无限期等待
7.username是数据库登陆名
8.password是数据库登陆口令
9.driverClassName是只定数据库的jdbc驱动程序
10.url是指定连接数据库的URL,masenv是我的数据库名。
方法2 :
如果你是想将你的TOMCAT绑定到你IDE(eclipse)上启动的话 可以采用这个方法
方法如下 :
在你项目WebRoot 文件下面搞个META-INF文件夹在建个context.xml文件 在此XML文件里配置数据源即可。内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<Context path="/mas" docBase="D:/web/voteTest/WebRoot" debug="0" reloadable="true" crossContext="true">
<Resource name="jdbc/mas" auth="Container" type="javax.sql.DataSource"
driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@192.168.3.177:1521:masenv"
username="wsq" password="wsq" maxIdle="20" maxWait="5000"
maxActive="100" removeAbandoned="true"
removeAbandonedTimeout="60" logAbandoned="true"/>
</Context>
说明同上
获得数据源方法
/**
* 初始化数据库连接
*
* @throws SQLException
*/
private static void loadDataSource()
throws SQLException {
try {
if (dataSource == null) {
Context context = new InitialContext();
DataSource dataSource = (DataSource)context.lookup("java:comp/env/jdbc/mas");
}
} catch (Exception e) {
throw new SQLException("数据库命名服务错误:" + e.getMessage());
}
}
/**
* 取数据库连接
*
* @return Connection
*
* @throws SQLException
*/
public static Connection getConnection() {
Connection conn = null;
try {
loadDataSource();
Connection conn = dataSource.getConnection();
} catch (SQLException sqle) {
throw new RuntimeException(sqle);
}
return conn;
}