代码是没错的,可就是链接不上MYSQL,一直说"找不到驱动".可是我明明在classpath里设置了驱动路径了.不知道是为什么...
代码如下:
import java.sql.*;
public class conCheck{
public static void main(String args[]){
String DBriver = "com.mysql.jdbc.Driver";
String url = "jdbc:mysql://localhost/test?user=dongjie&password=123456";
String user = "nn";
String pwd = "111111";

try{
Class.forName(DBriver);
}catch(java.lang.ClassNotFoundException e){
System.err.println(e.getMessage());
}

try{
Connection con = DriverManager.getConnection(url,user,pwd);
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("select * from member");
while(rs.next()){
System.out.println(rs.getString("name"));
}
rs.close();
}catch(Exception e){
System.out.println("数据库操作时出现了错误!");
}
}
}是不是因为操作系统的原因??我的操作系统是windows XP sp2 professional的..
各位帮帮我好吗?

解决方案 »

  1.   

    你打开驱动包看看驱动路径是什么?我记得有的驱动好像是org打头的~~~可能是这个原因最后数据库要关闭的
    stmt.close();
    con.close();
      

  2.   

    String url = "jdbc:mysql://localhost/test?user=dongjie&password=123456";
    这么写也是不对的改成String url = "jdbc:mysql://localhost/test"; 就可以了
      

  3.   

    String url = "jdbc:mysql://localhost/test?user=dongjie&password=123456";
    String user = "nn";
    String pwd = "111111";
    问题应该出在这三句话阿
    String url = "jdbc:mysql://localhost/test?user=dongjie&password=123456";
    这句话里的user&password首先下面已经有了
    其次居然不一样
    ????
    关闭数据库是一个良好的习惯,虽然有的时候不关也不会出错。
    顺序就是上面h2342166(火腿太狼) 老兄说的
      

  4.   

    import org.apache.commons.dbutils.DbUtils;
    Connection con=null;
    Statement stmt=null;
    ResultSet rs =null;try{
    con = DriverManager.getConnection(url,user,pwd);
    stmt = con.createStatement();
    rs = stmt.executeQuery("select * from member");
    while(rs.next()){
    System.out.println(rs.getString("name"));
    }
    }catch(Exception e){
    System.out.println("数据库操作时出现了错误!");
    }finally{
    DbUtils.closeQuietly(rs);
    DbUtils.closeQuietly(stmt);
    DbUtils.closeQuietly(conn);
    }
      

  5.   

    eureka0891(迷茫中...) 老兄
    我没有org.apache.commons.dbutils.DbUtils这个包
    在finally中写入关闭数据库语句很好啊~~ 支持!
    我也写了一个、没有调试~~手头没有数据库、所以大家调试一下看看有毛病没有
    其中异常处理还不是完善、呵呵import java.sql.*;public class conCheck {
    public static void main(String args[]) {
    String DBriver = "com.mysql.jdbc.Driver";
                      //String DBriver = "org.gjt.mm.mysql.Driver"; //用这个也可以的
    String url = "jdbc:mysql://localhost/test";
    String user = "nn";
    String pwd = "111111";
    try {
    Class.forName(DBriver);
    } catch (java.lang.ClassNotFoundException e) {
    System.err.println(e.getClass()+"类没有找到"+"信息为"+e.getMessage());
    } try {
    Connection con = DriverManager.getConnection(url, user, pwd);
    Statement stmt = con.createStatement();
    ResultSet rs = stmt.executeQuery("select * from member");
    while (rs.next()) {
    System.out.println(rs.getString("name"));
    }
    rs.close();
    } catch (Exception e) {
    System.out.println("数据库操作时出现了错误!");
    } finally {
    Connection con = null;
    if (!(con == null))
    try {
    Statement stmt = null;
    stmt.close();
    con.close();
    } catch (SQLException e) {
    e.printStackTrace();
    }
    System.out.println("关闭数据库(可注释掉)");
    } }
    }finally那里写的好像不太对~~~顺便当问题问了、大家谁帮助调试一下~~~
    finally中的 Connection con =null 和  stmt=null是IDE生成的。不知道能不能成功。
      

  6.   

    上面那个有问题啊~~好像没有执行con.close()
    郁闷了~不弄了~大家看看怎么写好些
      

  7.   

    谢谢各位。。真的非常感谢。。
    我去试试。。
    特别是那个finally里写关闭数据库链接等的方法非常好。不过有点问题就是:在我调试我的程序时显示的结果是找不到驱动!!OK,我先去调试一下成功与否都会上来再回一次。。谢谢!!!
      

  8.   

    你的问题可能是:用了mysql5.0,而用的驱动是低版本的.报错可能是:no suitable driver.建议升级你的链接驱动.官方有下的.
      

  9.   

    还是不行提示结果为找不到JDBC驱动
    这样,我把我的操作写下来,看看哪里出了问题。
    从网上下过来JDBC FOR MYSQL的驱动,名为:mysql-connector-java-3.1.7-bin.jar,把它放在目录为:e:\jdk1.42\lib下,在系统的环境变量的classpath内加上了"e:\jdk1.42\lib\mysql-connector-java-3.1.7-bin.jar",点击确定。
    用MYSQL-FRONT打开MYSQL,建立表member表,内有name字段,输入内容。
    打开JCREATE,写入代码:
    import java.sql.*;
    public class conCheck{
    public static void main(String args[]){
    String DBriver = "com.mysql.jdbc.Driver";
    String url = "jdbc:mysql://localhost/test";
    String user = "root";
    String pwd = "111111";try{
    Class.forName(DBriver);
    }catch(java.lang.ClassNotFoundException e){
    System.err.println(e.getMessage());
    System.out.println("MYSQL驱动找不到");
    }try{
    Connection con = DriverManager.getConnection(url,user,pwd);
    Statement stmt = con.createStatement();
    ResultSet rs = stmt.executeQuery("select * from member");
    while(rs.next()){
    System.out.println(rs.getString("name"));
    }
    rs.close();
    }catch(Exception e){
    System.out.println("数据库操作时出现了错误!");
    }
    }
    }OK,一切完成,进行编译,没错误。运行它,出现错误。。com.mysql.jdbc.Driver
    MYSQL驱动找不到
    数据库操作时出现了错误!
    Press any key to continue...非常郁闷。。请大家帮我看看,在我操作的时候哪里出了问题
      

  10.   

    你在cmd里运行你的java程序之前,set classpath打下去,看一下你的设置到底有没有问题。也许在windows里你打漏了什么。
      

  11.   

    用winrar把那个驱动jar文件打开看下里面的路径对不对、还有确定mysql的服务已经运行~~~首先要把驱动问题解决了才知道对库的操作是否正常~~~~建议使用IDE看一下~~~
      

  12.   

    我试验了一下 3.1.7的驱动可以用在最新的mysql5.0.16上的
      

  13.   

    驱动写成Class.forName("org.gjt.mm.mysql.Driver").newInstance();
      

  14.   

    CLASSPATH系统环境变量,不要用classpath
      

  15.   

    回"songthing(逸虹千里·儒俊丹枫)",以前也用小写的链接上过.不过是用JSP来链接的.大小写有什么区别吗?回" withwind79(withwind79) ",试过了,没用..那个newInstance()有什么作用?回"HouJinkun2005(岱瀛)",你的方法我会去试试的.回"h2342166(火腿太狼)",那个路径对不对怎么看?MYSQL已经运行了.谢谢各位,真的很感谢...不过,这个问题还是没解决...
      

  16.   

    import java.sql.*;
    public class MysqlConnect { public static void main(String[] args) {
    String url = "jdbc:mysql://localhost/mydb";
    String username = "root";
    String password = "";
    String sqlStr = "select * from users"; try {
    Class.forName("org.gjt.mm.mysql.Driver").newInstance();
    Connection con = DriverManager.getConnection(url, username, password);
    Statement stmt = con.createStatement();
    ResultSet rs = stmt.executeQuery(sqlStr); dispResultSet(rs);
    rs.close();
    stmt.close();
    con.close();
    } catch (ClassNotFoundException e) {
    e.printStackTrace();
    } catch (InstantiationException e) {
    e.printStackTrace();
    } catch (IllegalAccessException e) {
    e.printStackTrace();
    } catch (SQLException e) {
    e.printStackTrace();
    } } private static void dispResultSet(ResultSet rs) throws SQLException {
    int i;
    int counter = 0; ResultSetMetaData rsmd = rs.getMetaData(); int numCols = rsmd.getColumnCount();
    boolean more = rs.next(); while (more) {
    for (i = 1; i <= numCols; i++) {
    if (i > 1)
    System.out.print(",");
    System.out.print(rs.getString(i));
    }
    System.out.println("");
    counter++;
    more = rs.next();
    }
    // System.out.println(counter);
    }
    }
    我这个程序我是可以运行的,如果驱动不对,就是你的配置问题了
      

  17.   

    winrar可以打开.jar文件的。里面的目录结构就是包的写法啦~~~
      

  18.   

    怀疑classpath没设置对,
    楼主用的是在:cmd下编译的?用eclipse啊你把mysql-connector-java-3.1.7-bin.jar放在jdk\jre\lib\ext下看看,还找得到不,
    如果这样找得到,说明你classpath有问题了