java.sql.SQLException:与postgres交互的android应用程序中没有合适的驱动程序错误
Posted
技术标签:
【中文标题】java.sql.SQLException:与postgres交互的android应用程序中没有合适的驱动程序错误【英文标题】:java.sql.SQLException: No Suitable Driver error in android app that interacts with postgres 【发布时间】:2013-10-30 22:22:53 【问题描述】:我正在关注一个将 android 应用程序连接到 PostgresSQL 数据库的教程,该教程在这里http://appliedcoffeetechnology.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 字符串中的所有参数。 我能做些什么?我真的不知道该怎么做,因为我检查了所有可能的问题,但似乎我无法解决这个问题,而且似乎我做的一切都是正确的,我还尝试了从网站上进行的完整复制/粘贴我链接了!...在此先感谢您的帮助!
【问题讨论】:
【参考方案1】:您是否检查了该引用位置中是否存在 jar 文件。
【讨论】:
是的,当然就像我在帖子中所说的那样,库在引用下正确显示,而且它也可以正常工作,因为 adt 检测到它,然后在我编写代码时向我提供建议!【参考方案2】:我解决了这个问题!当我将外部 jar 添加到库中时,它位于项目文件夹之外的路径中,这是我的错! (然而,主要的错误是编译项目的 Eclipse :-D)我复制并粘贴 .jar 和 libs 目录下的库,我不再有错误了! 谢谢大家!
【讨论】:
以上是关于java.sql.SQLException:与postgres交互的android应用程序中没有合适的驱动程序错误的主要内容,如果未能解决你的问题,请参考以下文章
MySQL 抛出“java.sql.SQLException:列计数与第 1 行的值计数不匹配”[重复]
java.sql.SQLException: ORA-01861: 文字与格式字符串不匹配
java.sql.SQLException:与postgres交互的android应用程序中没有合适的驱动程序错误
java.sql.SQLException: - ORA-01000: 超过最大打开游标