我正在关注将 Android 应用程序连接到 PostgresSQL 数据库的教程,该教程位于http://applidcoffeetechnology.tumblr.com/post/10657124340,然后我有以下代码:
package com.example.helllopostgresql;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import android.app.Activity;
import android.os.AsyncTask;
import android.os.Bundle;
import android.widget.TextView;
public class HelloPostgreSQLActivity extends Activity {
TextView resultArea;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
resultArea = new TextView(this);
resultArea.setText("Please wait.");
setContentView(resultArea);
new FetchSQL().execute();
}
private class FetchSQL extends AsyncTask<Void,Void,String> {
@Override
protected String doInBackground(Void... params) {
String retval = "";
try {
Class.forName("org.postgresql.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
retval = e.toString();
}
String url = "jdbc:postgresql://10.0.2.2/dbname?user=username&password=pass";
Connection conn;
try {
DriverManager.setLoginTimeout(5);
conn = DriverManager.getConnection(url);
Statement st = conn.createStatement();
String sql;
sql = "SELECT 1";
ResultSet rs = st.executeQuery(sql);
while(rs.next()) {
retval = rs.getString(1);
}
rs.close();
st.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
retval = e.toString();
}
return retval;
}
@Override
protected void onPostExecute(String value) {
resultArea.setText(value);
}
}
}
该应用程序正常启动,但在“请稍候...”出现错误 java.sql.SQLException:没有合适的驱动程序当然我导入了带有库的 jar 文件并且 ADT 识别它们,因为我可以看到结构中的库“引用库”中的项目。我在网上读到,当没有部分 "Class.forName ("org.postgresql.Driver")" 时,错误通常是一个问题。当然,我更改了您可以在代码中看到的 url 字符串中的所有参数。我能做些什么?我真的不知道该怎么做,因为我检查了所有可能的问题,但似乎我无法解决这个问题,而且似乎我做的一切都是正确的,我还尝试了从网站上进行的完整复制/粘贴我链接了!...在此先感谢您的帮助!