各位大神好,我是android菜鳥,
今日參考其他人的寫法,好不容易連上databese 也能打結果打印,
但遇到onPostExecute 這種要怎樣返回value
我google一下 很多人方法都不一樣,參考來改也得不出個所以,
所以想在這邊請教一下大神有沒有提供一些意見。
public class InfoAsyncTask extends AsyncTask<Void, Void, Map<String, String>> {
@Override
protected Map<String, String> doInBackground(Void... voids) {
Map<String, String> info = new HashMap<>();
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
try (Connection connection = DriverManager.getConnection(URL, USER, PASSWORD)) {
String sql = "SELECT * from confinement WHERE ID = "+id;
PreparedStatement statement = connection.prepareStatement(sql);
ResultSet resultSet = statement.executeQuery();
if (resultSet.next()) {
info.put("RTSP", resultSet.getString("RTSP"));
}
} catch (Exception e) {
Log.e("InfoAsyncTask", "Error reading school information", e);
}
return info;
}
public void onPostExecute(Map<String, String> result) {
if (!result.isEmpty()) {
url = result.get("RTSP");
}
}
}
不用 Map,直接用 ResultSet 回傳即可
真正重要的問題是
你真的要用非同步的方式查 SQL 資料(不等回傳結果)嗎...
因為都是靜態的(其實是我不會寫XD
重點不是靜態或動態
而是在你想做的結果
我實在不明白為什麼有這麼多人
會想從 Android 直連 MySql
(不透過 REST API)
可否請教是那一本書或是文章看到的嗎
直連就算了
明明你的元件就一定得等資料才能往下執行
還用非同步的方式抓資料
總之
一整個不知道從何說起
抱歉,太菜了我,我都以第一直覺想說要連SQL 就直接尋找Android studio sql 或 Android studio database 這樣,所以尋到的答案就是那幾個,不過我現在碰壁了,原來所謂的非同步是指都要load到最後才會顯示,果然我要從sql撈rtsp結果每次都說鏈結無效才彈APP才get到我的rtsp,所以請教大神,我是否以rest api 的做法就可以了?