日期:2014-05-20  浏览次数:20966 次

初试java连接数据库 一直报错 求助!!
建了两个java文件
一个:
package com;
import java.sql.*;

public class studentdao {
public student getstudent() throws Exception{
Class.forName("com.mysql.jdbc.Driver");
Connection conn=DriverManager.getConnection("jdbc:Mysql://localhost:3306/test","root", "123");
Statement stm=conn.createStatement();
ResultSet rs=stm.executeQuery("select * from student where id=2");
student stu=new student();

while(rs.next()){
stu.setId(rs.getLong("id"));
stu.setName(rs.getString("username"));
stu.setPassword(rs.getString("password"));
}
rs.close();
stm.close();
conn.close();
return stu;
}

public static void main(String[] args) throws Exception{
 
studentdao dao=new studentdao();
student stu=dao.getstudent();
if(stu!=null){
System.out.print(stu);  
}
 
 
}


}
另一个:
package com;

public class student {
private long id;
private String name;
private String password;

public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}

}
然后现在mysql的驱动包也导入了
数据库test里建了一张表student 里面有id=2的记录
还是一直报错 错误如下:
Exception in thread "main" java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:169)
at com.studentdao.getstudent(studentdao.java:9)
at com.studentdao.main(studentdao.java:33)
想问下到底是什么原因 我java一直都学不好 请高人指导下 谢谢啦!



------解决方案--------------------
不好意思 专门测了一下 URL是不区分大小写的

问题是驱动的问题。
探讨
Connection conn=DriverManager.getConnection("jdbc:Mysql://localhost:3306/test","root", "123");

大写做什么?!
应该是mysql

------解决方案--------------------
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
说明com.mysql.jdbc.Driver这个类没有找到
我猜:这句话你从别的地方拷贝来的.因为他的Driver类在这个包下.所以能运行,你包下没有这个类所以报错
你要做的就是点开com.mysql.jdbc.Driver去找这个Driver类.看看Driver这个类在那里

提示: 因为下载的JDBC驱动不一样.所以Driver位置不一样.一般情况可能就1及目录的差别.

------解决方案--------------------
楼主为什么你导入的jar包是 xxxxxx.rar而不是xxxxx.jar啊?