直接用Java(不用JSP)连接MySQL数据库的问题
我使用的是MySQL 4.1.10,下载的JDBC驱动程序是mysql-connector-java-3.1.7-bin.jar,使用jdk1.5.0_06。
我把mysql-connector-java-3.1.7-bin.jar放到D:盘,在CLASSPATH里添加了这么一条:D:\mysql-connector-java-3.1.7-bin.jar;
直接写了个Java类来连接MySQL,但是老是出现如下错误:
java.sql.SQLException: No suitable driver
at java.sql.DriverManager.getConnection(DriverManager.java:545)
at java.sql.DriverManager.getConnection(DriverManager.java:171)
at QueryAllMySQL.main(QueryAllMySQL.java:27)
Exception in thread "main "
java.lang.NullPointerException at QueryAllMySQL.main(QueryAllMySQL.java:45)
但是我查找网上的信息,大都使用JSP来完成连接MySQL数据库,于是我使用jakarta-tomcat-5.5.7,并且把mysql-connector-java-3.1.7-bin.jar放到\jakarta-tomcat-5.5.7\common\lib目录下,然后写了一个Servlet类,其中连接MySQL的语句和上面一样,并且成功地连接了数据库。
那说明我的MySQL数据库、JDBC驱动都没问题,老是出现上面的问题就不知道哪错了,请大家指教!
Java类源代码如下:
import java.sql.*;
public class QueryAllMySQL
{
private static Connection connection = null;
private static Statement statement = null;
public static void main(String[] args) throws Exception
{
// 加载数据库驱动
try
{
Class.forName( "com.mysql.jdbc.Driver ");
}
catch(
ClassNotFoundException ex)
{
ex.printStackTrace();
}
try
{
// 连接数据库
connection = DriverManager.getConnection (DATABASE_URL,DATABASE_USR,DATABASE_PASSWORD);
// 查询表
statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery( "use student;SELECT * FROM studentInfo ");
// 显示查询数据
printInfo(resultSet);
}
catch(
SQLException ex)
{
ex.printStackTrace();
}
finally
{
try
{
connection.close();
statement.close();
}
catch(SQLException ex)
{
ex.printStackTrace();
}
}
}
// 查询数据显示方法
private static void printInfo(ResultSet rs)
{
StringBuffer results = new StringBuffer();
try
{
ResultSetMetaData metaData = rs.getMetaData();
int numberOfColumns = metaData.getColumnCount();
for(int i=1;i <=numberOfColumns;i++)
{
results.append(metaData.getColumnName(i) + "\t ");
}
results.append( "\n ");
while(rs.next())
{
for(int i=1;i <=numberOfColumn