public class JdbcUtil {
// public static void main(String[] args) throws IOException, SQLException {
// // TODO Auto-generated method stub
// //use();
// Connection conn=JdbcUtil.getConnection();
// PreparedStatement pr=null;
// ResultSet rs=null;
// ArrayList<Student> students=new ArrayList<Student>();
//
// conn=JdbcUtil.getConnection();
// String query="select * from exam_student";
// pr=conn.prepareStatement(query);
// rs=pr.executeQuery();
// //获取Arraylist对象
//
// while(rs.next())
// {
// System.out.println(rs.getObject(1));
// }
//
// }
private JdbcUtil()
{
}
private static String url="jdbc:mysql://localhost:3306/jdbc1";
private static String user="root";
private static String password="";
static{
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
throw new ExceptionInInitializerError(e);
}
}
//getConnection
public static Connection getConnection() throws SQLException
{
return DriverManager.getConnection(url,user,password);
}
type Exception report
message Servlet execution threw an exception
description The server encountered an internal error that prevented it from fulfilling this request.
exception
javax.servlet.ServletException: Servlet execution threw an exception
root cause
java.lang.NoClassDefFoundError: Could not initialize class impl.JdbcUtil
impl.StudentImpl.query(StudentImpl.java:19)
StudentInfo.doPost(StudentInfo.java:71)
javax.servlet.http.HttpServlet.service(HttpServlet.java:643)
javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.39 logs.
}
注释是我添加的主函数实验代码,为什么我在JSP中调用就返回这个结果啊,我快疯了,一个星期了,这个问题还是这个问题,谁帮我,我jdbc练习了这么久代码做梦都能背下来了,怎么还是这种问题多多
------解决思路----------------------
private JdbcUtil()
{
}
你将默认的构造方法私有化了,外界不能构造JdbcUtil对象出来。
贴代码看StudentImpl的query方法是怎么写的。
------解决思路----------------------
你先把构造函数去掉或者是将private改成public。然后debug看一下,在StudentImpl类里面看一下,你拿到的connection是否为空之类的。
------解决思路----------------------
你这里默认构造器编程了private怎么行,除非单例模式,你把你默认构造器换成public试试。个人建议,这个先参考书上成功的例子,稍微了解下每个步骤是干嘛的。
------解决思路----------------------
你看下jsp中有没有导入JDBCUtil这个类,没导入肯定报错啊。<%@ page import="xxxx.xx.JDBCUtil" />
------解决思路----------------------
那就说明是static块中Class.forName("com.mysql.jdbc.Driver");执行失败。
将mysql-connector-java-5.xxx.jar包放在${jdk安装目录}/jre/lib/ext下再试。
------解决思路----------------------
static{
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
throw new ExceptionInInitializerError(e);
//将这行注释掉,改为e.printStackTrace();,这个能看到报的错误消息。
}
}
------解决思路----------------------
骚年要细心
------解决思路----------------------
我艹,包你都没有导入
------解决思路----------------------
原来如此
------解决思路----------------------
不要乱用private。
------解决思路----------------------
老兄是不是没使用ide 哈??? myeclipse会提示的哟.