当前位置: 首页 > 面试题库 >

Android JDBC无法正常工作:驱动程序上的ClassNotFoundException

濮波
2023-03-14
问题内容

我试图在我的Android应用程序中使用JDBC连接到远程数据库以执行插入,查询等操作。我已经成功连接并在另一个JAVA项目中完成了这些操作。因此,我认为由于Android是Java,因此我可以移植相关代码,为驱动程序添加相同的构建路径,等等。但这给了我错误:

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

我真的不认为这是代码问题,因为相同的代码可以在Java项目中工作(我只在main()中执行)。但这里供参考:

String url = "jdbc:mysql://localhost:3306/eventhub_test"; //
    String user = "root"; 
    String pass = "";

 SQLUtils sqlu = new SQLUtils(url, user, pass);

//我创建的SQLUtils类:

public class SQLUtils {


private String CONNECTION_URL;
private String user;
private String pass;
private java.sql.Statement stmt; 
private java.sql.Connection conn;

public SQLUtils(String conn_url, String user, String pass) {
    this.CONNECTION_URL = conn_url; 
    this.user = user;
    this.pass = pass; 
}


public void init() throws IllegalAccessException, InstantiationException, ClassNotFoundException, SQLException {

    Class.forName ("com.mysql.jdbc.Driver").newInstance ();
    conn = DriverManager.getConnection(CONNECTION_URL, user, pass);
    stmt = conn.createStatement();

}
}

所以我真的很困惑。JDBC是否不适用于Android?如果是这样,请告诉我对于远程MySQL数据库访问应考虑哪些替代方法。

谢谢。


问题答案:

JDBC是否不适用于Android?

JDBC在Android上很少使用,我当然不推荐使用。

恕我直言,JDBC专为高带宽,低延迟,高度可靠的网络连接(例如,台式机到数据库服务器,Web应用程序服务器到数据库服务器)而设计。移动设备几乎没有提供这些功能,而且也没有提供一致的功能。

如果是这样,请告诉我对于远程MySQL数据库访问应考虑哪些替代方法。

在数据库周围创建一个Web服务,然后从Android访问该服务。

作为附带的好处,您可以提高安全性(与保持数据库打开状态相比),可以从客户端上卸载某些业务逻辑,可以更好地支持其他平台(例如,基于Web或基于Web的移动框架)等。



 类似资料:
  • 我正在尝试使用mongo java驱动程序3.4从java访问mongodb。我写了下面的代码来访问mongodb,即使我在连接时输入了错误的凭据,我仍然能够访问我的数据库。 当我试图从ubuntu的终端访问mongo数据库时。它要求认证。

  • 问题内容: 我正在使用codeigniter 3.1。我想使用ajax发布上传数据。 Ajax上传文件不起作用。但是,当我发布不带ajax的简单表单时,它工作正常。 我不知道为什么,但控制台没有错误。 的HTML JAVASCRIPT 控制器 问题答案: 问题之一是文件上传使用的机制与其他表单类型不同。这就是为什么没有为您完成工作的原因。其他答案建议使用javascript,而这个答案也可以。 的

  • testFX。java: testFXController.java: 测验fxml: 当我运行testFX. java时,系统打印: 这是教授的代码,我似乎无法运行它。我意识到主要问题在代码

  • 问题内容: 这似乎是最容易的事情,但它没有用。在普通的浏览器中,.html和.js文件可完美运行,但在Chrome扩展程序中,该功能无法执行应有的功能。 .js文件: .html文件: 因此,基本上,一旦用户单击“ hyhy”,“ ha”应更改为“ xxx”。再说一次- 它在浏览器中完美运行,但在扩展程序中不起作用。你知道为什么吗?以防万一我还要在下面附加manifest.json。 提前致谢!

  • 在windows上使用netbeans已经很久了,没有问题。在Debian上安装了它,它启动了,但大多数按钮没有响应(新项目/新文件...)。 这是使用终端发射时的结果。 Netbeans版本:8.2 OS:Parrot(debian OS的发行版)JDK版本:9.0.1 提前道谢。

  • 问题内容: 我试过在Windows 7上安装docker(使用boot2docker)。但是控制台只是突然存在,我看不到错误,更不用说运行任何命令了。 在安装过程中,我尝试安装和不安装VirtualBox。我也尝试卸载并重新安装docker和virtualbox。似乎没有任何作用。 这是我运行时看到的控制台错误: 问题答案: 请检查您的BIOS的VT-x设置。根据您提供的日志,有一个错误: