Android中的JDBC连接

Posted

技术标签:

【中文标题】Android中的JDBC连接【英文标题】:JDBC connection in Android 【发布时间】:2011-05-25 18:20:37 【问题描述】:

有没有人在 android 中尝试过 JDBC 连接,因为在 Android 2.3 中支持 JDBC。

我必须在没有 Web 服务的情况下连接 mysql

我已经申请了,但是报错了

public class MysqlConnect extends Activity
@Override
public void onCreate(Bundle savedInstanceState) 

super.onCreate(savedInstanceState);
setContentView(R.layout.main);
System.out.println("MySQL Connect Example.");
Connection conn = null;
String url = "jdbc:mysql://localhost:3306/";
String dbName = "jdbctutorial";
String driver = "com.mysql.jdbc.Driver";
String userName = "root"; 
String password = "root";
try 
  Class.forName(driver).newInstance();
  conn = DriverManager.getConnection(url+dbName,userName,password);
  System.out.println("Connected to the database");
  conn.close();
  System.out.println("Disconnected from database");
 catch (Exception e) 
  e.printStackTrace();



我在 getConnection 中遇到错误。错误就像 java.lang.VerifyError : com.mysql.jdbc.MysqlIO

提前致谢。

【问题讨论】:

你能发布这个的堆栈跟踪吗?$ 阅读我的回答,你将摆脱所有的痛苦。 【参考方案1】:

我已经使用 JDBC 和用于各自数据库的桌面 Java 应用程序的常规类型 4 驱动程序直接从 Android 设备成功连接到 MySQL、Oracle 和 SQL Server。

只需搜索桌面 JDBC 示例。相同的代码在 Android 上无需任何修改即可工作。确保将驱动程序的 .jar 文件添加到 Eclipse 中的项目中。编译器会自动将.jar驱动转换成Dalvik兼容包。

【讨论】:

你好,请你简单解释一下。因为很多人试图这样做,但没有得到成功的结果。如果可能,请使用一些代码快照编辑您的答案,构建所需的 jar 等... pastebin.com/K42jvLJu 只需将 ojdbc14.jar 等相应的 Type 4 驱动程序作为外部 JAR 添加到项目中即可。 我仍然有相同的 VerifyError。使用 ADT v22 和 android 平台 19。我包括了 ojdbc14(尝试使用和不使用 jtds.jar)。现在痛了 3 天......任何帮助@Kurian【参考方案2】:

VerifyError 可能是由于错误的类文件签名而发生的。

在这里查看:

Android java.lang.VerifyError? java.lang.VerifyError

JDBC 也包含在以前的版本中 - 关键问题是为您的数据库包含正确的驱动程序类,并确保它可以与 Android 运行时一起使用。

【讨论】:

您好,感谢您的回复。我已经在我的应用程序中添加了 mysql-connector-java。有没有通过jdbc成功连接mysql的例子? 你是否通过“dx”程序运行过这个jar文件? dx 不是必需的。当您添加外部 jar 时,它会自动完成。【参考方案3】:

我遇到了同样的问题,有两件事解决了我的问题:

    您必须记住将 JDBC 连接代码放在 AsyncTask 中, 否则你会 BURN BURN BURN !

    不要将“INTERNET”权限误认为“使用 INTERNET”权限。您需要后者来执行 JDBC。

如果以上方法都不能解决您的问题,请检查警告行中以“caused by:”开头的 logcat 行。谷歌搜索该行可以让您接近找到解决方案。

【讨论】:

【参考方案4】:

我遇到了类似的问题,尝试从一个非主线程的新线程运行连接代码并更改 localhost 服务器地址。

【讨论】:

【参考方案5】:

我遇到了同样的错误。

只需将此行添加到您的 gradle 依赖项即可解决错误。

compile group: 'mysql', name: 'mysql-connector-java', version: '5.1.44'

您可以根据需要更改版本。

添加后,gradle sync 将处理所有事情,您只需像在简单的 java jdbc 程序中一样连接到 DB。我使用 android studio 开发了我的应用程序。

【讨论】:

以上是关于Android中的JDBC连接的主要内容,如果未能解决你的问题,请参考以下文章

Android:用 JDBC 连接 MySql

Android JDBC连接导致ctahttp异常

如何使用 Mysql JDBC 驱动程序将 Android 与 MySQL 连接 [重复]

使用 JDBC 从 Android 连接到 MySQL

Android用jdbc链接mysql并对数据库进行增,删,改,查;注意是Android

Android 无法直接连接 Postgres 数据库,也无法使用 JDBC 连接