Welcome 微信登录

首页 / 软件开发 / JAVA / Tomcat6.x+struts1.x+MySQL5.x连接池问题

Tomcat6.x+struts1.x+MySQL5.x连接池问题2012-01-14 blogjava BBT_soft1.在项目的WebRoot/META-INF下建context.xml文件,注意必须在该目录下,Tomcat会自动找这个文件,Tomcat6.0以后就不用在web.xml中配置了:

<?xml version="1.0" encoding="UTF-8"?><Context reloadable="true" crossContext="true"><Resource name="jdbc/test" ----------注意:test为项目名auth="Container"----------该项为不变项type="javax.sql.DataSource"----------该项为不变项driverClassName="com.mysql.jdbc.Driver"----------数据库驱动名url="jdbc:mysql://localhost:3306/haotian?autoReconnect=true"-------urlusername="root"-----用户名password="root"------密码maxActive="10"   ------最大连接数 maxIdle="5"     --------最大空闲连接数maxWait="-1"/>   ------最大等待毫秒数,-1为无限等待</Context>
2.连接类:

public class DBConnection { private Connection conn=null;public Connection getConnection(){      //生成上下文对象,通过它可以向容器发送别名.    Context context;    try {     context = new InitialContext();     //查找对象     DataSource ds=(DataSource)context.lookup("java:comp/env/jdbc/test");//jdbc/test为配置文件中的name     //得到连接     try {      conn=ds.getConnection();     } catch (SQLException e) {      e.printStackTrace();     }    } catch (NamingException e) {     // TODO Auto-generated catch block     e.printStackTrace();    }         return conn;}
3.把MySQL5.0的驱动包放到Tomcat的lib目录下,注意:是Tomcat的lib,而不是项目的lib。(不知道为什么会这样,之前不用这种连接池的时候放在项目的lib中就可以连接成功,但是现在就不可以,个人认为可能是context.xml使得Tomcat找自身lib中的驱动包,而不是项目中的驱动包)