[英]why can't java see my mysql driver
我在弄清楚为什么Java无法看到我的mysql驱动程序时遇到麻烦:
但是我仍然收到ClassNotFound异常。 我还有什么需要做的吗?
类的例子:
package org.rcz.dbtest;
import java.sql.*;
public class DB {
private Connection connect = null;
private Statement stmt = null;
private PreparedStatement prepared = null;
private ResultSet rset = null;
private String driverClassName = "com.myqsl.jdbc.Driver";
private String jdbcUrl = "jdbc:mysql://localhost/ctic_local?user=root&password=server";
private String queryString;
public DB(String query)
{
System.out.println(System.getProperty("java.class.path"));
queryString = query;
}
public void readFromDatabase()
{
try
{
Class.forName(driverClassName);
connect = DriverManager.getConnection(jdbcUrl);
stmt = connect.createStatement();
rset = stmt.executeQuery(queryString);
writeResultSet(rset);
}
catch (ClassNotFoundException cex)
{
System.out.println("Could not find mysql class");
}
catch(SQLException sqex)
{
}
}
private void writeResultSet(ResultSet resultSet) throws SQLException {
// ResultSet is initially before the first data set
while (resultSet.next()) {
// It is possible to get the columns via name
// also possible to get the columns via the column number
// which starts at 1
// e.g. resultSet.getSTring(2);
String user = resultSet.getString("name");
String comment = resultSet.getString("comment");
System.out.println("User: " + user);
System.out.println("Comment: " + comment);
}
}
}
我的主类只是将查询传递给DB类:
package org.rcz.dbtest;
import java.io.IOException;
public class Main {
public static void main(String[] args) throws IOException
{
String qstring = "SELECT * FROM comments";
new DB(qstring).readFromDatabase();
System.in.read();
}
}
您在驱动程序类名称中有错字。
private String driverClassName = "com.myqsl.jdbc.Driver";
它应该是
private String driverClassName = "com.mysql.jdbc.Driver";
// -------------------------------------^
与具体问题无关 ,将诸如Connection
, Statement
和ResultSet
之类的数据库资源作为类的实例变量持有是一个坏主意。 您需要在try-finally
块中的最短范围内创建,使用和关闭它们,以防止资源泄漏。 另请参阅以下问题/答案: 当我的应用失去连接时,我应该如何恢复它?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.