Class.forName();括号里面应该怎么写?是否一定要写驱动程序的名字?如果mysql驱动的版本不一样,名字是否也不一样呢?我看到有些是com.sun.... 有些是org.....开头,这些是代表包名吗?还是代表什么??哪位达人给解答一下,不胜感激

解决方案 »

  1.   

    可以写成如下:
    String driver="org.gjt.mm.mysql.Driver";
    Class.forName(driver);
    其中的org.gjt.mm.mysql是包名,也可以说是路径,意思就是找到Driver类名的路径
    抢做个沙发坐坐!
      

  2.   

    这里写的是JDBC驱动程序的完整类名,这个类必须实现 java.sql.Driver 接口才能有用效的。sun. 这些是JDBC驱动的包名,表示驱动类所在的位置,好让Java能找得到它们的。其他也不代表什么了,
    只是一个名字而已,这个名字有一定的讲究的,比如:CSDN要做一些Java工具,那它的包名就应取为:
    net.csdn开头的(就是以域名反过来写),这样其他人写的类就不大会重复了(因为域名是不会重复的)。PS:楼主说的那个 MySQL 驱动,MySQL已经不建议使用了,仅为了兼容而保留着,建议使用:
    com.mysql.jdbc.Driver,com.mysql就是mysql的域名(mysql.com),这样其他公司取的
    jdbc.Driver就不会和它一样了。不知道这样说,你明白了吗?
      

  3.   

    我的意思是下载下来的MYSQL驱动程序不是一个JAR包么,
    Class.forName()里面驱动的程序的名字是否是固定的?和下载下来那个jar包的名字是否是两会事呢?
      

  4.   

    驱动名字是固定,你用IDE的话直接导入到项目中去,不用的话把包放到classpath里去
      

  5.   

    这个是你用到的数据库驱动完整的类名,
    用到的是java的反射机制
      

  6.   

    2楼的是正解
    forName其实就是把com.mysql.jdbc.Driver这个类导进来
    然后用
      

  7.   

    如楼上所说的话,那几个包是自己建吗?还是jar包里本来就带的有呢?
      

  8.   

    jar实际上是个.class文件的ZIP格式的大集合,Java可以从里面读取用到的东西。使用WinRAR可以打开这个jar文件。com.mysql.jdbc.Driver,实质上就是com/mysql/jdbc/Driver.class,就是一层一层的路径。