import java.sql.*;public class Jdbc{
    public static void main(String[] args){
        Connection conn =null;
        Statement stat =null;
        ResultSet rs = null;
        try {
            new com.mysql.jdbc.Driver();
            conn = DriverManager.getConnection(
"jdbc:mysql://localhost/test?user=root&password=root&useUnicode=true&characterEncoding=GBK" );
            stat = conn.createStatement();
            rs = stat.executeQuery("select * from test");
            while(rs.next()){
                System.out.print(rs.getString("id") + ":");  
System.out.println(rs.getString("name"));
            }
        } catch (SQLException ex) {
            System.out.println("SQLException: " + ex.getMessage());
            System.out.println("SQLState: " + ex.getSQLState());
            System.out.println("VendorError: " + ex.getErrorCode());
        }
        try {
            if(rs!=null){
                rs.close();
                rs= null;
            }
            if(stat!=null){
                stat.close();
                stat=null;
            }
            if(conn!=null){
                conn.close();
                conn =null;
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}
这段程序中new com.mysql.jdbc.Driver();是什么意思?好像不是标准的Java语法。

解决方案 »

  1.   

    加载mysql连接驱动程序,什么叫不是标准的Java语法
      

  2.   

    一般生成一个对象不应该写成Object o = new Object();吗
    但它只有等号的右半部分,这是为什么呢?
      

  3.   

    加载mysql连接驱动程序 Class.forName(com.mysql.jdbc.Driver).newInstance();不是这样写的吗,,,
    你new com.mysql.jdbc.Driver();这一句,确实不明白你new 的对象,到底是谁在引用
      

  4.   

    为什么我用你给的mysql连接代码显示错误呢?
    Jdbc.java:10: 软件包 com.mysql 不存在
                            Class.forName(com.mysql.jdbc.Driver).newInstance();
                                                   ^
    1 错误
      

  5.   

    mysql-connector-java-5.*.*-bin.jar有没有在CLASSPATH下,,
      

  6.   

    Class.forName("com.mysql.jdbc.Driver");
      

  7.   

    Class.forName("com.mysql.jdbc.Driver").newInstance();
      

  8.   

    JDBC 网上例子很多
    注意 自己的数据库版本和JAR要对应
      

  9.   

    首先,在JAVA里面,任何class都需要在虚拟机上运行,Class.forName(xxx)返回的是一个类,这句话是装载类用的,和new不同。至于什么时候用呢,你可以考虑一下这个问题,给你一个字符串,这个字符串代表的意义是包含了包名和类名,你怎么实例化它?
    A a = (A)Class.forName("package.A").newInstance();

    A a = new A();
    是一样的。
    简而言之:
    Class.forName(xx.xx.xx)返回的是一个类
    Class.forName(xx.xx.xx)要求JVM查找并加载指定的类——也就是说JVM会执行指定类的静态代码块。
    com.mysql.jdbc.Driver也只不过是个类而已 new com.mysql.jdbc.Driver()也没什么不可以的;当一个类开始被执行的时候,众所周知首先要先加载静态块,所以,如此实例化也没什么大不了的,只不过不符合某些所谓的规范而已。
      

  10.   

    Class.forName("com.mysql.jdbc.Driver");