sqlite android 本地?cái)?shù)據(jù)庫(kù)缘回,用來(lái)存儲(chǔ)少量的數(shù)據(jù) 或者 用來(lái)處理 緩存
public class SqliteDbHelper extends SQLiteOpenHelper {
?private static final int DB_VERSION = 1;?
?private static SqliteDbHelper instance;?
?private static String TABLE_NAME;?
?private Map CREATE_TABLE_SQL = new HashMap<>();
? ? //SQLiteOpenHelper創(chuàng)建數(shù)據(jù)庫(kù)時(shí)默認(rèn)是將數(shù)據(jù)庫(kù)保存在’/data/data/應(yīng)用程序名/databases’目錄下
? ? protected static SqliteDbHelper getInstance(Context context) {
? ? ? ? if (null == instance) {
? ? ? ? ? ? TABLE_NAME = context.getResources().getString(R.string.app_name) + ".db";
? ? ? ? ? ? instance = new SqliteDbHelper(context, TABLE_NAME);
? ? ? ? }
? ? ? ? return instance;
? ? }
? ? private SqliteDbHelper(Context context, String name) {
? ? ? ? super(context, name, null, DB_VERSION, null);
? ? ? ? CREATE_TABLE_SQL.clear();
? ? }
? ? @Override
? ? public void onCreate(SQLiteDatabase sqLiteDatabase) {
? ? ? ? for (String sql : CREATE_TABLE_SQL.values()) {
?? ? ? ? ? ?sqLiteDatabase.execSQL(sql);
? ? ? ? }
? ? }
? ? @Override
? ? public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {
? ? ? ? String sql = "DROP TABLE IF EXISTS " + TABLE_NAME;
? ? ? ? sqLiteDatabase.execSQL(sql);
? ? ? ? onCreate(sqLiteDatabase);
? ? }
? ? public boolean createTable(String name, String... items) {
? ? ? ? if (CREATE_TABLE_SQL.containsKey(name)) {
? ? ? ? ? ? return false;
? ? ? ? }
? ? ? ? String sql = "create table if not exists " + name
? ? ? ? ? ? ? ? + " (Id integer primary key";
? ? ? ? for (String item : items) {
? ? ? ? ? ? sql += (", " + item + "text");
? ? ? ? }
? ? ? ? sql += ")";
? ? ? ? CREATE_TABLE_SQL.put(name, sql);
? ? ? ? this.onCreate(this.getReadableDatabase());
? ? ? ? return true;
? ? }
}
需要一個(gè) manager 來(lái)管理所有的 增刪改查 同時(shí)需要自己 寫(xiě)簡(jiǎn)單 sql 語(yǔ)句
public class SqliteManager {
private static SqliteManagerinstance;
private static SqliteDbHelperdbHelper;
private void SqliteManager(){}
public static SqliteManager getInstance(Context context){
if (null ==instance){
instance =new SqliteManager();
dbHelper = SqliteDbHelper.getInstance(context);
}
return instance;
}
public void createTable(String name, String... items){
dbHelper.createTable(name, items);
}
//遍歷出表名
? ? public String getAllTableName(Context context) {
SqliteDbHelper helper = SqliteDbHelper.getInstance(context);
SQLiteDatabase db = helper.getWritableDatabase();
db.beginTransaction();
String result =null;
Cursor cursor = db.rawQuery("select name from sqlite_master where type='table';",null);
Log.e("xiaobo cursor column? ", cursor.getCount()+"");
while(cursor.moveToNext()){
//遍歷出表名
? ? ? ? ? ? result += cursor.getString(0) +"? ";
}
db.setTransactionSuccessful();
db.endTransaction();
return result;
}
public int insertTableItem(Context context, String name, ContentValues item) {
SqliteDbHelper helper = SqliteDbHelper.getInstance(context);
SQLiteDatabase db = helper.getWritableDatabase();
db.beginTransaction();
db.insertOrThrow(name,null, item);
db.setTransactionSuccessful();
db.endTransaction();
return 0;
}
}
只有增加的 方法,個(gè)人目前 喜歡寫(xiě) 簡(jiǎn)單的sql 語(yǔ)句進(jìn)行查詢。但是依舊需要 model類的引入。