TOMCAT配置数据源(apache-tomcat-7.0.82)

在TOMCAT中找到apache-tomcat-7.0.82---->conf---->server.xml这个文件或者

在eclipse中:

(反正要让你修改这个文件生效)

内容如下:(找到最后的哪个节点:</host>之前)

<Context docBase="shop" path="/shop" reloadable="true" source="org.eclipse.jst.jee.server:shop">
      	<Resource    
			name="jdbc/shop"     
			scope="Shareable"
			type="javax.sql.DataSource"       
			url="jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8"    
			driverClassName ="com.mysql.jdbc.Driver"    
			username="root"    
			password="rootroot123"  
			maxActive="100"  
			maxIdle="30"  
			maxWait="10000" />
      </Context>

然后在写一个servlet或者jsp页面来测试它,在main方法里面测试是不行的。

<%@ page contentType="text/html; charset=UTF-8" language="java" errorPage="" %>
<%@ page import="javax.naming.*,java.sql.*,javax.sql.*" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
	<title>测试Tomcat数据源</title>
</head>
<body>
<%
//初始化Context,使用InitialContext初始化Context
Context ctx=new InitialContext(); 
/*
通过JNDI查找数据源,该JNDI为java:comp/env/jdbc/dstest,分成两个部分
java:comp/env是Tomcat固定的,Tomcat提供的JNDI绑定都必须加该前缀
jdbc/dstest是定义数据源时的数据源名
*/
DataSource ds=(DataSource)ctx.lookup("java:comp/env/jdbc/shop");
//获取数据库连接
Connection conn=ds.getConnection();
//获取Statement
Statement stmt=conn.createStatement();
//执行查询,返回ResulteSet对象
ResultSet rs=stmt.executeQuery("select * from mmanager");
while(rs.next())
{
	out.println(rs.getString(1) 
		+ "\t" + rs.getString(2) + "<br/>");
}
%>
</body>
</html>

上面的代码满篇复制过去都可以,注意要修改的地方一定要改改。

servlet来测试:

import java.io.IOException;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.sql.DataSource;

public class JndiTestServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
	public JndiTestServlet() {
		super();
	}
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		this.doPost(request, response);
	}
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException,
			IOException {
		Context ctx = null;
		DataSource ds = null;
		Connection con = null;
		try {
			ctx = new InitialContext();
			String strLookup = "java:comp/env/jdbc/shop";
			ds = (DataSource) ctx.lookup(strLookup);
			con = ds.getConnection();
			DatabaseMetaData meta = con.getMetaData();
			ResultSet rs = meta.getCatalogs();
			while(rs.next()){
				System.out.println(rs.getString(1));
			}
		} catch (NamingException e2) {
			// TODO Auto-generated catch block
			e2.printStackTrace();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		if (con != null) {
			System.out.print("success");
		} else {
			System.out.print("failure");
		}
	}
}

这段代码如果运行的时候没有报错,一般就可以断定成功。需要用jsp页面来调用这个servlet。

这个是整个项目的web.xml文件经过上面的配置,整个里面的引用可有可无(测试过)

<!-- 
数据源引用可有可无  
<resource-ref>
  	<description>DBConnection</description>
  	<res-ref-name>jdbc/shop</res-ref-name>
  	<res-type>java.sql.DataSource</res-type>
  	<res-auth>Container</res-auth>
</resource-ref> 
-->
这个就是针对单个项目的数据源的配置;









  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值