我尝试将我的Android应用程序与我的Postgresql Databse连接,但它没有得到DR Iver正在运行的连接,但连接不起作用。
这是java代码:
private void initDatabase() {
try {
Class.forName("org.postgresql.Driver");
} catch (ClassNotFoundException e) {
return;
}
Connection connection = null;
String url = "jdbc:postgresql://10.0.2.2/Seminarkurs";
try {
connection = DriverManager.getConnection(url , "postgres", "postgres");
Toast.makeText(getApplicationContext(), "Connection successful!", Toast.LENGTH_LONG).show();
connection.close();
} catch (SQLException e) {
Toast.makeText(getApplicationContext(), "Connection Failed! Check output console", Toast.LENGTH_LONG).show();
e.printStackTrace();
return;
}
}
这是日志猫:
01-16 14:40:17.192 8044-8053/com.example.damian.schulkalender E/System﹕ Uncaught exception thrown by finalizer
01-16 14:40:17.192 8044-8053/com.example.damian.schulkalender E/System﹕ java.lang.NullPointerException
at org.postgresql.jdbc2.AbstractJdbc2Connection.close(AbstractJdbc2Connection.java:677)
at org.postgresql.jdbc2.AbstractJdbc2Connection.finalize(AbstractJdbc2Connection.java:1036)
at java.lang.Daemons$FinalizerDaemon.doFinalize(Daemons.java:187)
at java.lang.Daemons$FinalizerDaemon.run(Daemons.java:170)
at java.lang.Thread.run(Thread.java:841)
我确定这不是你想听到的,但尝试从移动设备直接连接到服务器端数据库确实不是一个合理的做法。我每周都会在这里看到这个问题几次,我真的不知道为什么。
执行此操作的首选方法是创建一个服务器端应用程序,该应用程序通过 HTTP 连接(例如 REST API)向移动应用程序提供数据。
也就是说,您创建连接的尝试似乎失败了。您可以通过将异常处理程序中的e.printStackTrace()
替换为使用 Android 记录器来获取更多信息,以便您可以在 logcat 中看到错误。