android怎么连接mysql数据库

发布网友

我来回答

2个回答

懂视网

推荐:《mysql视频教程》

Android Studio连接MySQL:问题解决:虚拟机无法连接本地SQL,coon总为空

在子线程中进行数据库的连接

首先在Activivty中自定义监听事件

//写在Activity中
private Button mBtn;
 @Override
 protected void onCreate(Bundle savedInstanceState)
 {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);
 SetListener();//自定义监听事件
 }

在自定义监听事件中开辟子线程,注意最后.start()

private void SetListener()
 {
 mBtnadmin.setOnClickListener(new View.OnClickListener()
 {
  @Override
  public void onClick(View view) {
  new Thread(new Runnable() {
   @Override
   public void run() {
   Connection conn=null;//创建连接
   Statement stmt=null;//用以执行SQL语句
   try{
   //注册驱动
    Class.forName("com.mysql.jdbc.Driver");
   //数据库的执行语句
    String sql="insert into demo values(6666,6666)";
 //获取connection对象,这里使用localhost如果无法成功,则改成10.0.2.2,这是虚拟机上电脑的地址,注意是虚拟机,用于虚拟机的测试
    conn=DriverManager.getConnection("jdbc:mysql://10.0.2.2:3306/logindata","root","666666");
    stmt=conn.createStatement();
    stmt.executeUpdate(sql);
    }
   }catch (Exception e)
   {
    e.printStackTrace();
   }finally {
   stmt.close();
   conn.close();
    // JDBCUtils .Close(stmt,conn);
   }
   }
  }).start();
  }
 });
 }

因为一直在使用虚拟机进行测试,一开始coonection的定义一直是

 conn= DriverManager.getConnection("jdbc:mysql://localhost/logindata","root","666666");

每一次的连接结果都在报:coon=null,最后多方调试发现了这个问题,虚拟机对应的电脑的ip应该是10.0.2.2,即将coonection的定义改为

conn= DriverManager.getConnection("jdbc:mysql://10.0.2.2:3306/logindata","root","666666");

成功!之前一直担心是代码的问题,所以没有去连接服务器上的MySQL,现在可以去尝试了!

热心网友

用Android程序去直连MySQL数据库,觉得这样做不好,出于安全等方面考虑。数据库地址,用户名密码,查询SQL什么的都存在程序里,很容易被反编译等方法看到。
建议把表示层和数据层逻辑分开,数据层对应网页的表示层提供接口,同时在为Android手机端提供一个接口,简介访问数据库,这接口可以2端都保持一致,比如XML+RPC或者json等等,Android端也有现成的东西能直接用,既安全又省事。

android 链接mysql数据库实例:
package com.hl;
import java.sql.DriverManager;
import java.sql.ResultSet;
import com.mysql.jdbc.Connection;
import com.mysql.jdbc.Statement;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
public class AndroidMsql extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button btn=(Button)findViewById(R.id.btn);
btn.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
sqlCon();
}
});

}

private void mSetText(String str){
TextView txt=(TextView)findViewById(R.id.txt);
txt.setText(str);
}

private void sqlCon(){
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (Exception e) {
e.printStackTrace();
}
try {
String url ="jdbc:mysql://192.168.142.128:3306/mysql?user=zzfeihua&password=12345&useUnicode=true&characterEncoding=UTF-8";//链接数据库语句
Connection conn= (Connection) DriverManager.getConnection(url); //链接数据库
Statement stmt=(Statement) conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql="select * from user";//查询user表语句
ResultSet rs=stmt.executeQuery(sql);//执行查询
StringBuilder str=new StringBuilder();
while(rs.next()){
str.append(rs.getString(1)+"\n");
}
mSetText(str.toString());

rs.close();

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com