GreenDao清空数据库的方法
来源:互联网 发布:软件系统可靠性设计 编辑:程序博客网 时间:2024/05/18 03:36
最近在做项目的时候,为了方便测试人员测试,在应用中加入正式库和测试库切换的功能。为了防止正式库和测试库切换带来的数据冲突,切换的时候必须把当前的数据库清空。代码如下:
package com.example.admin.greendaotest;import android.content.Context;import android.database.sqlite.SQLiteDatabase;import com.greendao.gen.DaoMaster;import org.greenrobot.greendao.database.Database;/** * Created by admin on 2017/9/19. */public class DBManager { private final static String dbName = "student_db"; private static DBManager mInstance; private DaoMaster.OpenHelper openHelper; private Context context; public DBManager(Context context) { this.context = context; openHelper = new DaoMaster.OpenHelper(context, dbName, null){}; } /** * 获取单例引用 * * @param context * @return */ public static DBManager getInstance(Context context) { if (mInstance == null) { synchronized (DBManager.class) { if (mInstance == null) { mInstance = new DBManager(context); } } } return mInstance; } /** * 获取可读数据库 */ private SQLiteDatabase getReadableDatabase() { if (openHelper == null) { openHelper = new MySQLiteOpenHelper(context, dbName, null); } SQLiteDatabase db = openHelper.getReadableDatabase(); return db; } /** * 获取可写数据库 */ private SQLiteDatabase getWritableDatabase() { if (openHelper == null) { openHelper = new MySQLiteOpenHelper(context, dbName, null); } SQLiteDatabase db = openHelper.getWritableDatabase(); return db; } public void deleSQL(){ SQLiteDatabase db=getWritableDatabase(); DaoMaster daoMaster = new DaoMaster(db); DaoMaster.dropAllTables(daoMaster.getDatabase(),true); DaoMaster.createAllTables(daoMaster.getDatabase(),true); } class MySQLiteOpenHelper extends DaoMaster.OpenHelper{ @Override public void onCreate(Database db) { super.onCreate(db); } public MySQLiteOpenHelper(Context context, String name, SQLiteDatabase.CursorFactory factory) { super(context, name, factory); } }}
必须要加上DaoMaster.createAllTables(daoMaster.getDatabase(),true),不然重新进行数据库操作的时候(crud)会报找不到数据库表的错误:Caused by: android.database.sqlite.SQLiteException: no such table: 表名 ,至于为什么不会重新创建数据库表,我也不知道为啥,在这上面也浪费了一些时间,所以写下这篇博客。 阅读全文
0 0
- GreenDao清空数据库的方法
- 清空数据库的方法
- 清空数据库中所有表数据的方法
- 清空数据库中所有表数据的简洁方法
- 清空数据库中所有表数据的方法
- SQL2008 清空数据库中所有表数据的方法
- 清空缓冲区的方法
- 清空session的方法
- 清空session的方法
- 清空map的方法
- 清空session的方法
- 清空session的方法
- StringBuffer 清空的方法
- 清空session的方法
- 数据库清空日文件快捷方法
- SQL 清空数据库数据方法
- 清空数据库里面的所有数据
- 清空数据库中某表的所有数据
- Android的权限permission
- C# 根据年份和周判断周的第一天和最后一天
- H.264代价公式
- 论一个程序员迷茫的时候
- Codeforces847I NoiseLevel
- GreenDao清空数据库的方法
- 约数的个数
- Django入门-6:视图(URLconf使用)
- 分布式系统设计之基础设施(二)
- Java设计模式-策略模式
- BZOJ1123 BLO [Tarjan][点双连通分量]
- 标准盒子模型和IE盒子模型
- SQL一般面试题
- centos7更新系统内核及软件