Android:Android设备是否支持JDBC?

时间:2013-04-02 04:40:27

标签: android mysql jdbc phpmyadmin

我正在使用JDBC在不使用任何Web服务的情况下将数据发送到数据库。我使用Android 2.2模拟器进行了实验,我可以将数据发送到MySQL DB(LOCALHOST)。之后我尝试使用Android 2.2设备发送,我改变了路径 jdbc:mysql://10.0.2.2:3306/ jdbc:mysql://xx.xx.xx.xx:3306/ ipconfig

xx.xx.xx.xx来自我的localhost计算机的{{1}}。但它不适用于该设备。可能是什么原因。

主要疑虑:

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

5 个答案:

答案 0 :(得分:10)

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

答案 1 :(得分:1)

下载 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;   import 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());
    }   

}

}

答案 2 :(得分:1)

  

Android设备是否支持JDBC。

     

Android 2.2是否支持JDBC。

     

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

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

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

然而它帮助你理解JDBC和android可怕! SO Question

答案 3 :(得分:0)

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

从我可以看到,自API级别1以来支持java.sql,我认为不会很快删除支持。

/托马斯

答案 4 :(得分:0)

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

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

不要忘记根据需要更改版本。

添加此内容后,gradle同步将处理所有事情,您只需以与简单Java jdbc程序相同的方式连接到DB。