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.VerifyErrorJDBC 也包含在以前的版本中 - 关键问题是为您的数据库包含正确的驱动程序类,并确保它可以与 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连接的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Mysql JDBC 驱动程序将 Android 与 MySQL 连接 [重复]