我尝试将我的Android应用程序与我的postgresql Databse连接,但它没有得到连接,但是连接没有运行。
这是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;
}
}
这里是logcat:
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)
答案 0 :(得分:0)
我确定这不是您想要听到的内容,但尝试从移动设备直接连接到服务器端数据库真的不合理。我每周都会在这里看几次这个问题,我真的不确定原因。
执行此操作的首选方法是创建一个服务器端应用程序,通过HTTP连接(例如REST Api)向移动应用程序提供数据。
也就是说,看起来您尝试创建连接失败了。
您可以通过将异常处理程序中的e.printStackTrace()
替换为使用Android记录器来获取更多信息,以便在logcat中看到错误。