Android資料庫的運用

來源:互聯網
上載者:User

標籤:

很簡單的應用,所以我直接簡單明了。

    android中資料庫的運用:    1.定義類繼承 SQLiteOpenHelper   ps:   public  class  DBHelper  extends  SQLiteOpenHelper {     public  DBHelper(Context context) {     super (context, DBInfo.DB.DB_NAME,  null , DBInfo.DB.DB_VERSION);   }   @Override //這個是資料庫第一次建立的時候用   public  void  onCreate(SQLiteDatabase db) {    db.execSQL(DBInfo.Table.USER_INFO_CREATE);   }   @Override// 這個是資料庫升級版本時候調用的方法   public  void  onUpgrade(SQLiteDatabase db,  int  oldVersion,  int  newVersion) {    db.execSQL(DBInfo.Table.USER_INFO_DROP);    onCreate(db);   } }          當你完成了對資料庫的操作(例如你的 Activity 已經關閉),需要調用 SQLiteDatabase 的 Close() 方法來釋放掉資料庫連接。
   下面是對資料庫的增刪改查(每種方法包括兩種方法介紹:優點與缺點):     /**    * 添加一條記錄到資料庫    *    * @param id    * @param name    */ //第一種方法   public  void  add(String id, String name) {// 建立資料庫,只有它執行,資料庫才可以被建立  另外也可以用. getReadableDatabase();      SQLiteDatabase db = dbHelper.getWritableDatabase();    // 不好之處:無傳回值,無法判斷是否插入成功    db.execSQL( "insert into user_table (userId,userName) values (?,?)" ,      new  Object[] { id, name });    db.close();   } //第二種方法   public  long  addAndroid(String id, String name) {    SQLiteDatabase db = dbHelper.getWritableDatabase();    ContentValues values =  new  ContentValues();    values.put( "userId" , id);    values.put( "userName" , name);   // 好處:有傳回值  但是當表多的時候查詢就會麻煩    long  result = db.insert(Table.USER_INFO_TB_NAME,  null , values); // 傳回值是插入的是第幾行,大於0代表添加成功    db.close();    return  result;   }         /**    * 查詢某條記錄是否存在    *    * @param name    * @return    */   public  boolean  find(String name) {    SQLiteDatabase db = dbHelper.getReadableDatabase();    Cursor cursor = db.rawQuery(      "select * from user_table where userName = ?" ,      new  String[] { name });    boolean  result = cursor.moveToNext();    db.close();    return  result;   }   public  boolean  findAndroid(String name) {    SQLiteDatabase db = dbHelper.getReadableDatabase();    Cursor cursor = db.query(Table.USER_INFO_TB_NAME,  null "userName = ?" ,      new  String[] { name },  null null null );    boolean  result = cursor.moveToNext(); // true代表尋找到了//有許多的方法,可以看api文檔介紹    db.close();    return  result;   }       /**    * 修改一條記錄    *    * @param id    * @param name    */   public  void  update(String id, String name) {    SQLiteDatabase db = dbHelper.getWritableDatabase();    // 缺點無傳回值    db.execSQL( "update user_table set userName = ? where userId = ?" ,      new  Object[] { name, id });    db.close();   }   public  int  updateAndroid(String id, String name) {    SQLiteDatabase db = dbHelper.getWritableDatabase();    ContentValues values = new ContentValues();//是一個map集合,Google封裝好的 所有有key與value值。    values.put( "userName" , name);    // 傳回值大於0代表修改更新成功    int  result = db.update(Table.USER_INFO_TB_NAME, values,  "userId = ?" ,      new  String[] { id });    db.close();    return  result;   }       /**    * 刪除一條記錄    *    * @param name    */   public  void  delete(String name) {    SQLiteDatabase db = dbHelper.getWritableDatabase();    db.execSQL( "delete from user_table where userName = ?" ,      new  String[] { name });    db.close();   }   public  int  deleteAndroid(String name) {    SQLiteDatabase db = dbHelper.getWritableDatabase();    int  result = db.delete(Table.USER_INFO_TB_NAME,  "userName = ?" ,      new  String[] { name }); // 傳回值為受影響的行數,大於0代表成功    db.close();    return  result;   }

Android資料庫的運用

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.