我们知道 tomcat分不同的版本,.配置的数据源的方法,也不相同. 这点需要特别注意.
下面来说下,在tomcat 6.0.中配置数据源连接Oracle数据库的方法.连接其他数据库也是一样.只是改下driverClassName 和Url就行了.只是需要不同的驱动程序的jar包,拷贝到apache-tomcat-6.0.29\lib中。
1.下载Tomcat-6.0.29 解压到本地磁盘.
拷贝数据库驱动包.到apache-tomcat-6.0.29\lib目录下:
我这里以oracle10G为例.需要拷贝:ojdbc14.jar.
2.打开apache-tomcat-6.0.29\conf目录中的content.xml文件.
在此文件中配置Resource
<?xml version='1.0' encoding='utf-8'?> <Context> <!-- Default set of monitored resources --> <WatchedResource>WEB-INF/web.xml</WatchedResource> <!--数据源--> <Resource name="jdbc/DBSource" <!--数据源名称,格式通常为jdbc/xxx名称--> type="javax.sql.DataSource" <!--数据源类型--> username="scott" <!--连接数据库用户名--> password="tiger" <!--连接数据库密码--> maxIdle="2" <!--最大空闲数,数据库连接的最大空闲时间。超过空闲时间,数据库连接将被标记为不可用,然后被释放。设为0表示无限制。--> maxWait="5000" <!--最大的等待时间,单位毫秒。如果超过此时间将接到异常。设为-1表示无限制--> url="jdbc:oracle:thin:@localhost:1521:orcl" driverClassName="oracle.jdbc.driver.OracleDriver" maxactive="10" <!--连接池的最大数据库连接数。设为0表示无限制--> /> </Context>
3.在Web项目中的web.xml里面需要引用数据源:
<!-- 引用数据源; --> <resource-ref> <description>Oracle dataSource</description> <res-ref-name>jdbc/DBSource</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> <res-sharing-scope>Shareable</res-sharing-scope> </resource-ref>
4.在java代码中,写一个方法调用一下.
比如:在一个DataSourceDemo
package pack.java.datasource.demo;
import java.sql.Connection;
import java.sql.SQLException;
import javax.naming.InitialContext;
import javax.naming.NamingException;
/**
* 数据源实例;
* @author zhouhaitao
*
*/
public class DataSourceDemo {
/**
* 根据datasourceName获取数据源;
* @param dsName
* @return
*/
public Connection getConnection(String dsName){
Connection connection = null;
try {
//初始化,获取上下文对象;
InitialContext context = new InitialContext();
//根据datasourceName获取dataSource;
javax.sql.DataSource dataSource = (javax.sql.DataSource) context.lookup("java:comp/env/"+dsName);
try {
//从数据源中获取连接;
connection = dataSource.getConnection();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (NamingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return connection;
}
}
5.在jsp页面中,测试一下,是否调用成功。
也可以把方法直接写在<%%>脚本中.这里为了,测试方便,就直接在java代码中,写入方法,只需要传入dataSourceName即可。
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@page import="javax.sql.DataSource"%>
<%@page import="pack.java.datasource.demo.DataSourceDemo"%>
<%@page import="java.sql.Connection"%><html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<body>
<%
DataSourceDemo dataSourceDemo = new DataSourceDemo();
Connection connection = dataSourceDemo.getConnection("jdbc/DBSource");
//打印connection对象;
out.println(connection);
%>
</body>
</html>
6.发布项目,启动Tomcat服务.在浏览器中运行:
http://localhost:8080/MyDataSource/index.jsp
成功,从数据源中,获得一个连接..