作者: forkncp (折口) 看板: AndroidDev
標題: [問題] JDBC存取Mysql資料庫異常
時間: Tue Nov 3 01:47:50 2015
大家好
我知道一定會有人建議不要直接存取DB
礙於某些因素,還是決定直接存取DB...(技術、時間、練習...等)
本來想說因該可以很順利的完成,可是居然搞到現在
Connection還是建不起來...冏
權限:
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<user-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
程式:
//沒有很完整,但就大概這樣...
public void onCreate(Bundle savedInstanceState) {
final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
final String DB_URL = "jdbc:mysql://125.227.xxx.xxx:port/schema";
try{
Class.forName(JDBC_DRIVER);
/**********************下面這行就報錯了*************************/
conn = DriverManager.getConnection(DB_URL, USER, PWD);
stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
}catch(Exception e){
e.printStackTrace();
}
錯誤:
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link
failure
The last packet sent successfully to the server was 0 milliseconds ago. The
driver has not received any packets from the server.
java.net.SocketException: socket failed: EACCES (Permission denied)
抱歉對於Android開發還是個超新手,實在不知道問題出在哪QQ
google半天也找不到想要的答案...只好上來求助
若還需要什麼資訊煩請推文告知,謝謝!!!
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.136.198.156
※ 文章網址: https://webptt.com/m.aspx?n=bbs/AndroidDev/M.1446486473.A.B50.html
1F:→ qrtt1: 網路存取權限有給嗎? 11/03 08:47
2F:→ forkncp: 網路存取權有給:android.permission.INTERNET 11/03 09:56
3F:→ qrtt1: server 防火牆有開嗎?mysql server 有授權你目前的 ip 嗎 11/03 13:38
4F:→ forkncp: 一樣的設定,透過一般java project是正常的,所以應該不 11/03 13:44
5F:→ forkncp: 是防火牆/ip的問題QQ 11/03 13:45
6F:→ qrtt1: 你用 Socket 連看看有沒有回啊,看 message 是什麼都沒回 11/03 14:15
不太懂Socket怎麼連...我再研究一下
另外如果錯誤代碼是這樣,可是"DriverManager.getConnection"所帶的參數是正確的
那還有什麼可能嗎?
com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could
not create connection to database server.
※ 編輯: forkncp (125.227.147.229), 11/03/2015 16:00:05
7F:→ xling5216: 我剛好有些相關的東西(雖然也是參考別人的) 11/04 14:27
8F:→ xling5216: 有需要的話站內信:) 11/04 14:28
9F:→ x049: 連Socket範例:h ttp://ppt.cc/E2wCZ 11/05 00:01
10F:推 xling5216: 已提供給你了 11/05 00:32
11F:→ forkncp: 感謝各位大大幫忙 T_T 11/05 10:04
12F:推 kiwatami: 建議你還是不要直接連 11/05 14:25
13F:→ kiwatami: 開一個java專案 學一下hiberbate等framework 11/05 14:25
14F:→ kiwatami: 應該會比你用android學連資料庫還快 11/05 14:25
15F:推 abccbaandy: 推hibernate是在害人嗎...光是環境要架起來就不容易了 11/05 19:49
16F:→ x049: 可以使用HttpClient或HttpURLConnection連php存取資料庫吧 11/05 19:50
17F:→ x049: 範例在這:h ttp://ppt.cc/QTJdx 11/05 19:52
18F:→ x049: 物件都寫好了,不過對應的php可能就要自己搞了 11/05 19:53
19F:→ forkncp: webservice的方式我會先記錄下來,之後應該就會用到了! 11/07 01:54
20F:→ forkncp: 小弟不才,最後是發現...因為我直接run在UI thread下造成 11/07 01:54
21F:→ forkncp: 的錯誤,也算是解決了吧,謝謝各位!!! 11/07 01:55
22F:推 kiwatami: 第一次聽到推framework是在害人的說法 11/08 11:57
23F:→ kiwatami: 自己建連線還得控制連線數還有連線的開關 11/08 11:57
24F:→ kiwatami: transaction也很麻煩 framework包好好的 11/08 11:58
25F:→ kiwatami: 雖然自己用可以學到很多基礎知識 但要快還是用framework 11/08 11:59
26F:→ kiwatami: 網路上教學很多 不加Spring等其他的framework 11/08 11:59
27F:→ kiwatami: 建起來應該不難 11/08 12:00
28F:→ kiwatami: 說推framework是在害人 那hibernate的團隊存在意義是? 11/08 12:01
29F:→ kiwatami: DB開放外部IP連線才更可怕吧? 11/08 12:02