安卓連接不上mysql的解決辦法:首先在Activivty中自定義監聽事件;然后在自定義監聽事件中開辟子線程;最后將coonection的定義改為“DriverManager.getConnection(…)”即可。
推薦:《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,現在可以去嘗試了!
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END
喜歡就支持一下吧
相關推薦