大家好, 我是个Java程序员新手,现遇到一个关于jdbc的问题,请高手大哥指点迷津,小弟感激不尽!
    问题如下:我写了Jdbc驱动程序,现在程序中加入main()函数做检验,可驱动加载失败。程序代码如下:package com.database;import java.sql.*;public class ConnDate {
static String sDBDriver="com.mysql.jdbc.Driver";
static String url="jdbc:mysql://localhost:3306/test";
static String usename="root";
static String password="root";

public static Connection getConnection(){
Connection conn=null;
try{
Class.forName(sDBDriver);
             conn=DriverManager.getConnection(url,usename,password);
}catch(Exception e){
e.printStackTrace();
}

return conn;
}
public static void closeResultSet(ResultSet rs){
if(rs!=null){
try{
rs.close();
}catch(SQLException e){
e.printStackTrace();
}
}
}
public static void closeStatement(Statement stm){
if(stm!=null){
try{
stm.close();
}catch(SQLException e){
e.printStackTrace();
}
}
}
public static void closeConnection(Connection conn){
if(conn!=null){
try{
conn.close();
}catch(SQLException e){
e.printStackTrace();
}
}
}
public static int getNumber(){
Connection conn=getConnection();
int num=0;
try{
Statement stm=conn.createStatement();
String sql="select count(*) as rowNumbers from student;";
ResultSet rs=stm.executeQuery(sql);
rs.next();
num=rs.getInt("rowNumbers");

}catch(SQLException e){
e.printStackTrace();
}finally{
closeConnection(conn);
}
return num;
}
public static int getTotalPage(int pageSize){
int totalpage=1;
int tmpPage=0;
int rowNum=getNumber();
tmpPage=rowNum%pageSize;
if(tmpPage==0){
totalpage=rowNum/pageSize;
}else{
totalpage=(int)(Math.floor(rowNum/pageSize)+1);
}
if(totalpage==0){
totalpage=1;
}
return totalpage;
}
public static  ResultSet getAllResult(){
Connection conn=null;
Statement stm=null;
ResultSet rs=null;
String sql="select * from student;";
try{
conn=getConnection();
stm=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
rs=stm.executeQuery(sql);

}catch(SQLException e){
e.printStackTrace();
}
return rs;
}
      public static void main(String[] args){
             System.out.println("总记录数:"+getNumber());
      }
}
    显示异常为:
     java.lang.ClassNotFoundException: org.gjt.mm.mysql.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:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:169)
    at com.database.ConnDate.getConnection(ConnDate.java:14)
    at com.database.ConnDate.getNumber(ConnDate.java:50)
    at com.database.ConnDate.main(ConnDate.java:97)
Exception in thread "main" java.lang.NullPointerException
    at com.database.ConnDate.getNumber(ConnDate.java:53)
    at com.database.ConnDate.main(ConnDate.java:97)Process completed.
    请各位高手指点一二,小弟万分感激。(Mysql驱动已放入到Java的lib文件之下,并将.jar路径加入到classpath环境变量中)(小弟分数太少,给各位哥哥不了大礼,请各位哥哥见谅!)

解决方案 »

  1.   

     java.lang.ClassNotFoundException: org.gjt.mm.mysql.Driver 
    mysql的驱动包有没有引入??
      

  2.   

    应该放在工程的lib目录下,然后引入到工程里去
    给你看个eclipse的实例
      

  3.   

    问题补充:
       
        我做的工程是一个普通Java工程,本来在WEB工程下着,驱动也放到了工程下的lib文件下了,但我做测试的时候就是出现问题,加载不了驱动,我就把文件导出到一个普通Java工程下了。在环境变量中也加载驱动了。好困惑我啊。
        谢谢大家了!
      

  4.   

    你不会加载的话可以使用 user library创建自己的library 然后将 mysql.jar 引用到那个自定义的library里面,再加载到你的项目里面就好了
      

  5.   

    WEB项目中JAR放在WEB-INF/lib下面,如果是JAVA项目可以放在User的变量user library里面.如果还是不行,试试是不是JAR包和Mysql版本的问题.尽量使用最新的Release版
      

  6.   

    java.lang.ClassNotFoundException: org.gjt.mm.mysql.Driver 
    JAVA项目自己用eclipse到入进去,最好是最新的驱动