发布网友 发布时间:2022-04-21 19:48
共2个回答
懂视网 时间:2022-04-07 18:44
推荐:《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,现在可以去尝试了!
热心网友 时间:2022-04-07 15:52
用Android程序去直连MySQL数据库,觉得这样做不好,出于安全等方面考虑。数据库地址,用户名密码,查询SQL什么的都存在程序里,很容易被反编译等方法看到。