我们知道 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
成功,从数据源中,获得一个连接..