13

我正在做一个使用 JDBC 将数据发送到数据库而不使用任何 Web 服务的 Android 应用程序。我使用 Android 2.2 模拟器做了一个实验,我能够将数据发送到 MySQL DB (LOCALHOST)。之后我尝试使用 Android 2.2 设备发送,我将路径从 jdbc:mysql://10.0.2.2:3306/with更改为jdbc:mysql://xx.xx.xx.xx:3306/.

xx.xx.xx.xx 来自ipconfig我的本地主机。但它在设备中不起作用。可能是什么原因。

主要疑点:

  1. Android 设备目前是否支持 JDBC?
  2. Android 2.2 会支持 JDBC 吗?
  3. 如果支持,哪些 Android 版本将支持 JDBC?
4

5 回答 5

10

是的。你一定要记得把你的 JDBC 连接代码放在一个AsyncTask.,否则你会 BURN BURN BURN!

于 2013-09-17T07:13:03.500 回答
1

Android 设备是否支持 JDBC。

Android 2.2 会支持 JDBC。

如果支持,哪些 Android 版本将支持 JDBC。

NO android不支持本地MYSQL数据库所以我们不能使用JDBC连接frmo android设备,它只支持sqlite数据库。

如果您想从服务器使用您的数据库,那么只需为它创建一个 Web 服务,然后从服务器处理所有数据库连接。

但是它可以帮助您了解 JDBC 和 android 太可怕了! 所以问题

于 2013-04-02T05:40:13.600 回答
0

下载MySQL JDBC Connector 3.0.17并将其添加到您的 android 项目构建路径中。

import java.sql.Connection;



import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Statement;
import android.app.Activity;

导入android.os.Bundle;导入 android.widget.TextView;

public class MysqlSample01Activity extends Activity {

private static final String url = "jdbc:mysql://<server>:<port>/<database>";
private static final String user = "<username>";
private static final String pass = "<password>";

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    testDB();
}

public void testDB() {
    TextView tv = (TextView)this.findViewById(R.id.text_view);
    try {
        Class.forName("com.mysql.jdbc.Driver");
        Connection con = DriverManager.getConnection(url, user, pass);
        /* System.out.println("Database connection success"); */

        String result = "Database connection success\n";
        Statement st = con.createStatement();
        ResultSet rs = st.executeQuery("select * from table_name");
        ResultSetMetaData rsmd = rs.getMetaData();

        while(rs.next()) {
            result += rsmd.getColumnName(1) + ": " + rs.getInt(1) + "\n";
            result += rsmd.getColumnName(2) + ": " + rs.getString(2) + "\n";
            result += rsmd.getColumnName(3) + ": " + rs.getString(3) + "\n";
        }
        tv.setText(result);
    }
    catch(Exception e) {
        e.printStackTrace();
        tv.setText(e.toString());
    }   

}

}

于 2013-04-02T04:58:15.830 回答
0

听起来您的 Mysql 安装只允许来自本地主机的连接。更新您的 Mysql 配置以允许来自任何主机的连接。

从我所见,自 API 级别 1 起支持 java.sql,我认为该支持将很快被删除。

/托马斯

于 2013-04-02T05:01:14.453 回答
0

是的,您可以在 android 中使用 JDBC 连接到数据库。只需将此行添加到您的 gradle 依赖项中:

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

并且不要忘记根据您的需要更改版本。

添加后,gradle sync 将处理所有事情,您只需像在简单的 java jdbc 程序中一样连接到 DB。

于 2018-06-23T08:17:52.400 回答