標籤:android訪問mysql 資料庫
關於通過JDBC訪問本地MySql資料庫的一篇文章http://blog.csdn.net/leelit/article/details/41044187,昨天學完JDBC訪問本機資料庫後就想,怎樣可以遠端存取資料庫,真正使其成為一個伺服器。後面又聯想起自己之間做的一個單機版外賣訂餐App,如果可以使其通過資料庫來維護,那才是一款真正有意義的App。後面又搜了一下遠端存取資料庫的方法很快就找到了答案:http://www.cnblogs.com/xd502djj/archive/2011/04/01/2001826.html,接下來就是Android用戶端了。
一開始直接使用第一篇文章的方法,直接在Button裡面就用JDBC的方法訪問資料庫,直接不行,因為沒有添加網路許可權!添加了網路許可權後依然不可以,聯想起最近學的電腦網路知識,很多情況下我們所在的都是地區網,而外網是無法直接存取地區網的,所以就簡單地通過電腦發射WiFi然後手機連上讓其處於同一網段,不過依然不行。後來,我想起Android在主線程是不可以進行網路訪問的,所以直接給其套個線程,然後就OK了。(後來用2.3的手機測試不加線程是OK的,貌似主線程不能訪問網路是高版本的事兒,當然如果加了線程全都可以,所以都加線程就好了)
要遠端存取本機資料庫的四個點:
1、設定資料庫可遠端存取
2、添加網路許可權
3、線上程中訪問資料庫
4、手機連上電腦發射出來的WiFi使其處於同一網段
關鍵代碼:這裡不作注釋了,直接參見第一篇文章
button.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {// TODO Auto-generated method stubnew Thread(new Runnable() {@Overridepublic void run() {// TODO Auto-generated method stubJdbcUtils ju = new JdbcUtils();String sql1 = "select * from userinfo";try {List<Map<String, Object>> list = ju.query(sql1,null);System.out.println(list);} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}).start();}});操作結果:
1、一開始資料庫userinfo表的資料
2、Android端查詢
3、直接在navicat資料庫管理工具刪除一條記錄
4、重新查詢
一開始別人說這種方法是不可以的,必須通過一個WebServer來作中轉,通過搭建一個伺服器,在伺服器上訪問MySql,例如可以用PHP+MySql做伺服器端,PHP將MySql中的資料處理成Json,然後Android通過http協議訪問伺服器得到Json資料。當然直接用JDBC來訪問是不好的,因為別人一反編譯,資料庫的帳號密碼不全出來了,這樣是不安全的,不過作為學習還是可以滴。
Android資料庫:通過JDBC直接存取MySql