安卓连接不上mysql的解决办法:首先在Activivty中自定义监听事件;然后在自定义监听事件中开辟子线程;最后将coonection的定义改为“DriverManager.getConnection(...)”即可。

987a055427027bf050140a65bbd90380.png

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,现在可以去尝试了!

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐