日期:2014-05-16  浏览次数:20628 次

Tomcat数据源配置

很多应用都会用到数据源,现简要介绍一下tomcat5.x中如何配置数据源

项目:myeclipse6.6 + mysql + tomcat5.5

?

1.创建web工程,命名tomcatdb,创建包web.test,在此包下创建类WebTestMain

?

package web.test;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;


public class WebTestMain {
//	private static Log log = LogFactory.getLog(WebTestMain.class);//Log  Commons Logging Framwork 
	public String doTest(Object p) throws NamingException, SQLException{
		Context context = new InitialContext();
		//获得数据源
		DataSource ds = (DataSource)context.lookup("java:comp/env/testdb");
		//获取连接
		Connection conn = ds.getConnection();

		Statement stmt = conn.createStatement();
		
		//创建表
		String sql = "create table t1(c1 varchar(50) primary key,c2 int);";
		stmt.execute(sql);
		
		//插入数据
		sql = "insert into t1 values('abc',1);";
		stmt.execute(sql);
		
		//查询数据
		String rt = "unavailable";
		sql = "select * from t1 where c1 = 'abc'";
		ResultSet rs = stmt.executeQuery(sql);
		if (rs.next()){
			rt = rs.getString("c2");
		}
		
		//删除刚才创建的表及数据
		sql = "drop table t1";
		stmt.execute(sql);
		
		//关闭数据源连接
		stmt.close();
		conn.close();
				
		return "ok:" + rt;
	}
}

?2.在应用根目录WebRoot下创建test.jsp页面,在此页面中调用上面类中编写的方法

?

<body>
    Test:<br>
    <%=new web.test.WebTestMain().doTest(request) %>
 </body>

?3.添加mysql驱动包到WebRoot/WEB-INF/bin目录下(或添加到tomcat的bin目录下)

?

4.发布此项目到tomcat中,发布名称为tomcatdb

?

4.编写如下tomcatdb.xml文件并放在$TomcatHome$\conf\Catalina\localhost目录下($TomcatHome$为tomcat的安装根目录

?

<?xml version="1.0" encoding="utf-8" ?> 
<Context docBase="tomcatdb" path="/tomcatdb" privileged="true" workDir="work\Catalina\localhost\tomcatdb">
  <Resource name="testdb" type="javax.sql.DataSource" driverClassName="com.mysql.jdbc.Driver" password="root" username="root" url="jdbc:mysql://127.0.0.1:3306/test" /> 
  </Context>

?其中:tomcatdb为发布到tomcat中的名称

?

5.启动tomcat,在浏览器中输入http://127.0.0.1:8080/tomcatdb/test.jsp地址,回车运行程序,如果一切顺利则页面显示:

?

Test:
ok:1 

?即表示测试成功!

?

如果不成功请注意

1.检查tomcatdb.xml文件是否放置在正确位置,而且名称是否都正确

2.检查mysql的驱动包能否被加载

?

以下附件有本测试例子的完整myeclipse工程