现在的位置: 首页 > 综合 > 正文

Sqlite实现增删改查

2017年11月17日 ⁄ 综合 ⁄ 共 2567字 ⁄ 字号 评论关闭

 静态Helper类,用于建立、更新和打开数据库
   private static class DBOpenHelper extends SQLiteOpenHelper {

    public DBOpenHelper(Context context, String name, CursorFactory factory, int version) {
      super(context, name, factory, version);
    }

    private static final String DB_CREATE = "create table " +
      DB_TABLE + " (" + KEY_ID + " integer primary key autoincrement, " +
      KEY_NAME+ " text not null, " + KEY_AGE+ " integer," + KEY_HEIGHT + " float);";

    @Override
    public void onCreate(SQLiteDatabase _db) {
      _db.execSQL(DB_CREATE);
    }

    @Override
    public void onUpgrade(SQLiteDatabase _db, int _oldVersion, int _newVersion) {     

      _db.execSQL("DROP TABLE IF EXISTS " + DB_TABLE);
      onCreate(_db);
    }
  }

调用DBOpenHelper打开数据库

   public void open() throws SQLiteException { 
    dbOpenHelper = new DBOpenHelper(context, DB_NAME, null, DB_VERSION);
    try {
     db = dbOpenHelper.getWritableDatabase();
    }
    catch (SQLiteException ex) {
     db = dbOpenHelper.getReadableDatabase();
    }  
  }

public long insert(People people) {
     ContentValues newValues = new ContentValues();
  
     newValues.put(KEY_NAME, people.Name);
     newValues.put(KEY_AGE, people.Age);
     newValues.put(KEY_HEIGHT, people.Height);
    
     return db.insert(DB_TABLE, null, newValues);
   }

   public long deleteAllData() {
    return db.delete(DB_TABLE, null, null);
   }

   public long deleteOneData(long id) {
    return db.delete(DB_TABLE,  KEY_ID + "=" + id, null);
   }

   public long updateOneData(long id , People people){
    ContentValues updateValues = new ContentValues();  
    updateValues.put(KEY_NAME, people.Name);
    updateValues.put(KEY_AGE, people.Age);
    updateValues.put(KEY_HEIGHT, people.Height);
   
    return db.update(DB_TABLE, updateValues,  KEY_ID + "=" + id, null);
   }

   public People[] queryAllData() { 
    Cursor results =  db.query(DB_TABLE, new String[] { KEY_ID, KEY_NAME, KEY_AGE, KEY_HEIGHT},

      null, null, null, null, null);
    return ConvertToPeople(results);  
   }
  
   public People[] queryOneData(long id) { 
    Cursor results =  db.query(DB_TABLE, new String[] { KEY_ID, KEY_NAME, KEY_AGE, KEY_HEIGHT},

      KEY_ID + "=" + id, null, null, null, null);
    return ConvertToPeople(results);  
   }

把查询结果转化为数据对象

   private People[] ConvertToPeople(Cursor cursor){
    int resultCounts = cursor.getCount();
    if (resultCounts == 0 || !cursor.moveToFirst()){
     return null;
    }
    People[] peoples = new People[resultCounts];
    for (int i = 0 ; i<resultCounts; i++){
     peoples[i] = new People();
     peoples[i].ID = cursor.getInt(0);
     peoples[i].Name = cursor.getString(cursor.getColumnIndex(KEY_NAME));
     peoples[i].Age = cursor.getInt(cursor.getColumnIndex(KEY_AGE));
     peoples[i].Height = cursor.getFloat(cursor.getColumnIndex(KEY_HEIGHT));
    
     cursor.moveToNext();
    }  
    return peoples;
   }

然后写个activity调用这些方法即可!

抱歉!评论已关闭.