0

我一直在尝试使用在 Android 应用程序中运行的 JTDS 1.3.1.jar 驱动程序连接到 Sybase SQL Anywhere 11 数据库引擎。

我使用 Eclipse 作为我的 IDE,并将我的 Java 虚拟机设置为 1.7 而不是标准的 1.6,因为我相信 JTDS 1.3 只会在该版本中运行。

在我的代码中,尝试建立数据库连接时,我不断收到“java.lang.ClassNotFoundException:net.sourceforge.jtds.jdbc.Driver”。

我已经检查了 URL 连接字符串,但是代码甚至没有达到这一点。

我已经检查了相关的 jar 文件是否已加载到 Project Settings - Java Build Path 中,都在 Libraries 部分中,并且在 Order and Export 中检查了它们的构建时间。

我已经让 jTDS 1.2 驱动程序成功连接并发出一条选择语句,但是当我执行查询时,它会导致“TDS 协议错误:无效数据包类型 0x0”的错误,因此 1.2 驱动程序表格数据存在问题流和 Sybase 11。

我还尝试了原生 Sybase jdbc 驱动程序“jconn2.jar & jconn3.jar”,但是这些库引用了一些其他类“org.ietf.jgss.GSSManage”,这些类似乎在 Android 中不受支持。所以这些库无法使用。

我的连接代码如下;

/* Setup Driver Manager - Working JTDS*/
DriverManager.registerDriver((Driver) Class.forName("net.sourceforge.jtds.jdbc.Driver").newInstance());
DriverManager.setLoginTimeout(60);
/* Build Connections Working JTDS URL */
URL = "jdbc:jtds:sybase://<ip>:<port>";
/* Set Up Properties */
prop = new Properties();
prop.put("user", "user");
prop.put("password", "pass");
prop.put("instance", "named instance");
prop.put("tds", "5.0");
prop.put("appName", "Android");

/* Attempt to connect to driver. */
Connection conn = DriverManager.getConnection(URL,prop);

任何想法或其他适用于 android 的驱动程序将不胜感激

提前致谢

4

0 回答 0