操作資料庫

      在〈操作資料庫〉中尚無留言

連線物件

使用上一節我們自已製作的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語法.

 

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *