連線物件
使用上一節我們自已製作的ServiceDBHelper類別, 產生此物件後, 再由makeConnection()取得Connection物件
Statement物件
Statement 物件可以由Connection.createStatement()產生, 然後再把SQL 命令放入Statement.executeQuery(strCmd)內, 產生ResultSet物件
PreparedStatement
由Connection.prepareStatment(strCmd)產生.
PreparedStatement物件可以使用stm.setDate, stm.setString設定strCmd裏的 “?”, 如此可以防止SQL Injection的破解.
ResultSet物件
查詢產生的ResultSet物件, 可以使用While(rs.next), 一筆一筆讀取. 讀取方式, 可以指定欄位名, 或者欄位編號, 編號由 1 開始, 如
rs.getInt(1);
rs.getString(“address”);
相關代碼如下
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); serverDBHelper=new ServerDBHelper(handler, "ip", "資料表", "帳號", "密碼"); Connection conn=serverDBHelper.makeConnection(); if(conn==null)return; String strCmd="select * from Employee"; try { Statement stm=conn.createStatement(); ResultSet rs=stm.executeQuery(strCmd); while(rs.next()){ Log.d("Thomas", String.format("%d, %s, %s, %s, %s", rs.getInt(1), rs.getString(2), rs.getString(3), rs.getString("address"), rs.getDate("birthday") )); } } catch (SQLException e) { Log.d("Thomas", e.getMessage()); } }
非查詢
如果要執行的SQL語法為 delete, update, inset等非查詢語法時, 則使用Statement的execute()方法運行SQL語法.