日期:2014-05-16 浏览次数:20628 次
很多应用都会用到数据源,现简要介绍一下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工程