Java 加载jdbc驱动程序时出错
嗨,我正在尝试做一个android应用程序,我需要连接到一个外部数据库,但是当我加载jdbc驱动程序时,系统给我一个错误。这是代码,错误在Class.forName(“com.mysql.jdbc.driver”); 我回顾了jdbc驱动程序的路径,但它是正确的,知道吗Java 加载jdbc驱动程序时出错,java,android,mysql,jdbc,driver,Java,Android,Mysql,Jdbc,Driver,嗨,我正在尝试做一个android应用程序,我需要连接到一个外部数据库,但是当我加载jdbc驱动程序时,系统给我一个错误。这是代码,错误在Class.forName(“com.mysql.jdbc.driver”); 我回顾了jdbc驱动程序的路径,但它是正确的,知道吗 private void connDB(String username, String password, Intent intent){ try{ Class.forName("com.mysq
private void connDB(String username, String password, Intent intent){
try{
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://ip/dbname?", "username", "password");
stmt = conn.createStatement();
rs = stmt.executeQuery("SELECT * FROM id");
rs = stmt.getResultSet();
if (stmt.execute("SELECT * FROM id")) {
rs = stmt.getResultSet();
}
while (rs.next()) {
//get id
id1 = rs.getInt("id");
id.add(id1);
//get name
buff = rs.getString("id");
user_name.add(buff);
//get password
buff = rs.getString("id");
user_password.add(buff);
}
imax = id.size();
for(i=0; i<imax; i++){
if(MainClass.username.equals(user_name.get(i)) && MainClass.password.equals(user_password.get(i))){
startActivity(intent);
idUser = id.get(i);
break;
}
else{
System.out.println("error");
}
}
}
catch (Exception ex){
System.out.println("SQLException: " + ex.getMessage());
}
finally {
if (rs != null) {
try {
rs.close();
} catch (SQLException sqlEx) { } // ignore
rs = null;
}
if (stmt != null) {
try {
stmt.close();
} catch (SQLException sqlEx) { } // ignore
stmt = null;
}
}
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
at java.lang.Class.classForName(Native Method)
at java.lang.Class.forName(Class.java:309)
at java.lang.Class.forName(Class.java:273)
private void connDB(字符串用户名、字符串密码、意图){
试一试{
Class.forName(“com.mysql.jdbc.Driver”);
Connection conn=DriverManager.getConnection(“jdbc:mysql://ip/dbname?“,”用户名“,”密码“);
stmt=conn.createStatement();
rs=stmt.executeQuery(“从id中选择*);
rs=stmt.getResultSet();
if(stmt.execute(“SELECT*FROM id”)){
rs=stmt.getResultSet();
}
while(rs.next()){
//取得身份证
id1=rs.getInt(“id”);
id.add(id1);
//得名
buff=rs.getString(“id”);
用户名。添加(buff);
//获取密码
buff=rs.getString(“id”);
用户密码。添加(buff);
}
imax=id.size();
对于(i=0;i试试这个:
Class.forName("com.mysql.jdbc.Driver").newInstance();
如果你告诉我们你得到的错误是什么,你会更容易帮助你。你应该编辑你的问题来添加信息。Ex.getMessage只显示com.mysql.jdbc.Driver如果你可以建议其他错误消息请求,我会发布resultReplaceSystem.out.println(“SQLException:+Ex.getMessage())
与ex.printStackTrace();
一起使用。问题可能是您在Android中使用的是Java驱动程序。那么您就没有使用ex.printStackTrace();
(除非安卓做了与普通Java完全不同的事情)。如果Class.forName(“com.mysql.jdbc.driver”);
抛出了一个异常,它没有返回要调用的类对象newInstance()
。使用.newInstance()
只是解决MySQL JDBC驱动程序中10年前修复的一个错误(可能更久)的一种方法。