Java 在Android上使用StelsMDB从MS Access数据库获取数据

Java 在Android上使用StelsMDB从MS Access数据库获取数据,java,android,database,ms-access,Java,Android,Database,Ms Access,我正在尝试使用访问MS_access数据库。该文件位于手机的SD卡上。我加载了所有库,创建了连接: public class DBConnection { private static final String TAG = DBConnection.class.getSimpleName(); private Connection connection; public DBConnection() { try { Class.f

我正在尝试使用访问MS_access数据库。该文件位于手机的SD卡上。我加载了所有库,创建了连接:

public class DBConnection {
    private static final String TAG = DBConnection.class.getSimpleName();

    private Connection connection;

    public DBConnection() {
        try {
            Class.forName(jstels.jdbc.mdb.MDBDriver2.class.getName());
            connection = DriverManager.getConnection("jdbc:jstels:mdb:sdcard/2012xp.mdb");
        } catch (SQLException e) {
            Log.e(TAG, "", e);
        } catch (ClassNotFoundException e1) {
            Log.e(TAG, "", e1);
        }
    }

    public Connection getConnection() {
        return this.connection;
    }
}
它似乎起作用了;但当我尝试查询某个内容时,会出现以下异常:

分析查询失败 java.lang.IllegalStateException:未知查询对象标志3

在网上我找不到任何提示。我得到了一个复杂查询的异常,所以我想写一个更简单的,比如

“从表名称中选择*”


…但我得到了同样的例外。

我相信您的连接字符串中有错误。您需要用它的属性创建连接对象

尝试用以下内容替换您的连接:

Connection conn = DriverManager.getConnection("jdbc:jstels:mdb:sdcard/2012xp.mdb");

经过长时间的尝试,我发现jStels与android不兼容…

…一点注释也不错。注释已经添加。请告诉我我的代码与您的代码之间的差异。但是,正如我所写的,连接似乎可以工作,但是查询失败。我只能猜测您正在创建连接的try catch之外使用station查询。如果是这样,请在try中尝试一个简单的查询。。。抓住你有联系的地方。您可以在try catch中声明一个station,并将查询传递给station,然后执行它。希望这有帮助,如果没有,请让我知道,这样我可以在这里键入一个代码示例