大家好, 我是个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环境变量中)(小弟分数太少,给各位哥哥不了大礼,请各位哥哥见谅!)
问题如下:我写了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环境变量中)(小弟分数太少,给各位哥哥不了大礼,请各位哥哥见谅!)
mysql的驱动包有没有引入??
给你看个eclipse的实例
我做的工程是一个普通Java工程,本来在WEB工程下着,驱动也放到了工程下的lib文件下了,但我做测试的时候就是出现问题,加载不了驱动,我就把文件导出到一个普通Java工程下了。在环境变量中也加载驱动了。好困惑我啊。
谢谢大家了!
JAVA项目自己用eclipse到入进去,最好是最新的驱动