【问题标题】:Android java.sql.SQLException: No suitable driver Postgress database queryAndroid java.sql.SQLException:没有合适的驱动程序 Postgres 数据库查询
【发布时间】:2015-06-07 22:44:21
【问题描述】:

我正在尝试在我的 android 应用程序中为我的 postgres 数据库使用查询,但我不断收到“java.sql.SQLException: 没有合适的驱动程序”错误。

我在依赖项中有驱动程序,所以我不确定发生了什么。

这是使用查询的代码。

public class MainActivity extends Activity {
TextView resultArea;
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> {
    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://**IPADDRESS**/postgres?user=postgres&password=**PASSWORD**";
        Connection conn;
        try {
            DriverManager.setLoginTimeout(5);
            conn = DriverManager.getConnection(url);
            Statement st = conn.createStatement();
            String sql;
            sql = "INSERT INTO Users (username, password) VALUES ('poop','dick');";
            System.out.println("*");
            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);
    }
}
}

这是我的 build.gradle

apply plugin: 'com.android.application'

android {
compileSdkVersion 22
buildToolsVersion "22.0.1"

defaultConfig {
    applicationId "jett.myapplication"
    minSdkVersion 8
    targetSdkVersion 22
    versionCode 1
    versionName "1.0"
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}
}

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:22.1.1'
compile files('E:/Alex Jett/Coding/160/MyApplication/libs/postgresql-9.4-1201.jdbc4.jar')
}

【问题讨论】:

  • 驱动应该是最后一行的JAR文件。

标签: java android sql-server postgresql


【解决方案1】:

在依赖项中试试这个:

compile 'org.postgresql:postgresql:9.4-1200-jdbc41'

并删除该行

compile files('E:/Alex Jett/Coding/160/MyApplication/libs/postgresql-9.4-1201.jdbc4.jar')

【讨论】:

  • 我有这个并且工作正常,你是否将权限 添加到清单中?
  • 我只是补充了一点,似乎没有任何改变。
  • 在这一行中你是否只使用了 ip,String url = "jdbc:postgresql://**IPADDRESS**/postgres?user=postgres&password=**PASSWORD**"; ?使用 ip:port。
  • 其他:你能用 INSERT 做一个 executeQuery 吗?
  • 我以前有过,每次我得到“org.postgresql.util.PSLQException: The connection attempt failed
猜你喜欢
  • 2012-07-02
  • 2014-08-06
  • 2013-12-21
  • 2021-07-13
  • 2016-09-12
  • 1970-01-01
  • 2020-06-25
  • 1970-01-01
  • 2021-08-04
相关资源
最近更新 更多