我正在尝试连接到我的数据库,但我的try / catch一直收到错误。这是我第一次尝试连接JDBC。因为我只是按照教程,我不确定我做错了什么。
代码:
import java.sql.*;
public class jdbc {
public static void main (String[] args)
{
Connection conn = null;
try
{
String userName = "root";
String password = "";
String url = "jdbc:mysql://localhost:3306/apple";
Class.forName ("com.mysql.jdbc.Driver").newInstance ();
conn = DriverManager.getConnection (url, userName, password);
System.out.println ("Database connection established");
}
catch (Exception e)
{
System.err.println ("Cannot connect to database server");
}
finally
{
if (conn != null)
{
try
{
conn.close ();
System.out.println ("Database connection terminated");
}
catch (Exception e) { /* ignore close errors */ }
}
}
}
}
答案 0 :(得分:1)
要获得正确的堆栈跟踪,请删除方法中的第一个catch块:
public static void main(String[] args) throws Exception {
Connection conn = null;
try {
String userName = "root";
String password = "";
String url = "jdbc:mysql://localhost:3306/apple";
Class.forName("com.mysql.jdbc.Driver").newInstance();
conn = DriverManager.getConnection(url, userName, password);
System.out.println("Database connection established");
} finally {
if (conn != null) {
try {
conn.close();
System.out.println("Database connection terminated");
} catch (Exception e) { /* ignore close errors */ }
}
}
}
然后你会发现错误的本质。您还需要确保mysql-connector.jar位于类路径中。此jar包含您用于连接的com.mysql.jdbc.Driver
类。
答案 1 :(得分:0)
在查看上面正确的代码之后,似乎有许多可能的异常。
答案 2 :(得分:0)
有同样的问题,有两件事解决了我的问题:
You must remember to put your JDBC connection code in an AsyncTask, other wise you will BURN BURN BURN!
Do NOT mistake "INTERNET" permission for the "uses INTERNET" permission. You need the latter to perform JDBC.
如果以上都没有解决您的问题,请检查警告线中以“由:引起:”开头的logcat行。谷歌搜索该线让你接近找到解决方案。