直接可以使用,更改替换参数即可import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import java.util.Arrays; public class MyDataBase{public static String tableName = "table_record";public static String dataBaseName = "database";SQLiteOpenHelper dbHelper; private SQLiteDatabase dbWrite, dbRead; public MyDataBase(final Context context) {
dbHelper = new SQLiteOpenHelper(context, dataBaseName , null, 1) {
@Override public void onCreate(SQLiteDatabase db) { } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { } }; dbWrite = dbHelper.getWritableDatabase(); dbRead = dbHelper.getReadableDatabase(); dbWrite.execSQL("create table if not exists table_record " + "(id_ integer primary key autoincrement," + " id INTEGER, button INTEGER, name varchar(20), data BLOB)");//BLOB是存byte[]用的 } public int insert(RecordButtonData data) { int ret = 0; Cursor c; c = dbRead.rawQuery("SELECT * FROM " + MyDataBase.tableName + " WHERE id = ?", new String[]{data.id + ""});
if (c.getCount() != 0) { c.close(); return ret; }//复用ContentValues方法 ContentValues values = getContentValues(data); ret = (int) dbWrite.insert(RecordDB.tableName, null, values); c.close();//返回插入的条数 return ret; } private ContentValues getContentValues(RecordButtonData data) { ContentValues values = new ContentValues(); values.put("id", data.id); values.put("button", data.button); values.put("name", data.name); values.put("data", data.data); return values; } public int delete(int id, int button) {//返回删除的条数
return dbWrite.delete(MyDataBase.tableName, "id=? and button = ? ", new String[]{id + "", button + ""}); } public void update(RecordButtonData data) { Cursor c = dbWrite.rawQuery("SELECT * FROM " + MyDataBase.tableName + " WHERE id = ?", new String[]{data.id + ""}); if (c.getCount() == 0 || data.id == -1) { c.close(); return; } ContentValues values = getContentValues(data); dbWrite.update(RecordDB.TableName, values, "id=?", new String[]{data.id + ""}); c.close(); } public RecordButtonData findByIdAndButton(int id, int button) {//双参数查找数据Cursor c = dbWrite.rawQuery("SELECT * FROM " + MyDataBase.TableName + " WHERE id = ? and button = ? ", new String[] {id + "", button + ""}); RecordButtonData data = null; //查找,如果没找到new一个项,找到就更新 if (c != null) { if (c.moveToFirst()) { data = new RecordButtonData(); data.id = c.getInt(c.getColumnIndex("id")); data.button = c.getInt(c.getColumnIndex("button")); data.name = c.getString(c.getColumnIndex("name")); data.data = c.getBlob(c.getColumnIndex("data")); }} c.close(); return data; }class RecordButtonData { public int id; public int button; public String name; public byte[] data; public RecordButtonData() { } public RecordButtonData(int id, int button, String name, byte[] data) { this.id = id; this.button = button; this.name = name; this.data = data; } }}
[存储]Android使用SQLiteOpenHelper简单存储
最新推荐文章于 2022-08-01 16:09:51 发布