我在写一个JDBC操作的练习中有使用数据连接池,用的JNDI技术。贴上context.xml配置代码:
<Resource name="jdbc/data" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://127.0.0.1:3306/news?characterEncoding=utf-8"
username="root" password="root"
/>
BaseDao代码:
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 BaseDao {
/**
* 获取数据库连接,以连接池的方式
*
* @return
*/
public Connection getConnection() {
Connection conn = null;
try {
Context cxt = new InitialContext();
DataSource ds = (DataSource) cxt.lookup("java:comp/env/jdbc/data");
conn = ds.getConnection();
} catch (NamingException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return conn;
}
/**
* 关闭数据库连接
*
* @param conn
* @param st
* @param rs
*/
public void closeAll(Connection conn, Statement st, ResultSet rs) {
try {
if (rs != null) {
rs.close();
}
if (st != null) {
st.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
部署项目运行后一直报:
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
找不到Mysql驱动jar包。然后我查了很多资料的解决办法都是说要把mysql-connector-java-5.1.0-bin.jar导入到tomcat的lib文件夹下,但问题是MyEclipse自带的tomcat 6.0是没有lib这个文件夹的。
于是我就自己新建了一个lib文件夹再把mysql-connector-java-5.1.0-bin.jar放到里面试试,结果还是报
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
几经无果,后来换了Tomcat 7.0版本把mysql-connector-java-5.1.0-bin.jar放到lib文件夹里面再部署重新运行就没问题了。
今天我来介绍另外一种简单的解决办法
打开MyEclipse的Window->Preferences->MyEclipse->Servers->Integrated Sandbox->MyEclipse Tomcat 6->Paths,如下图所示:
然后把jar包添加进去,再重新部署运行,OK问题解决。