xUtils3.0中DbUtils的使用

来源:互联网 发布:倚天现货指标公式源码 编辑:程序博客网 时间:2024/05/16 04:27

xUtils3框架地址


权限授予:

<uses-permission android:name="android.permission.INTERNET" />    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

        在项目中对于数据库的操作总体上来说,还是比较频繁的,所以我个人采用的是单例模式,将构建部分放在Application中,或者说是单独为此建立一个Application.

        个人项目中的例子:CrediteApplication.java:

public class CreditApplication extends Application {    public static Calendar TODAY;    private  static  final  String TAG = CreditApplication.class.getSimpleName();    private static Context mApplicationContext;    private static DbManager.DaoConfig daoConfig;    public static Activity currentAcivity;    @Override    public void onCreate() {        mApplicationContext = this;        SDKInitializer.initialize(this);        x.Ext.init(this);        x.Ext.setDebug(BuildConfig.DEBUG); // 是否输出debug日志, 开启debug会影响性能.        TODAY = Calendar.getInstance(Locale.CHINA);        daoConfig = new DbManager.DaoConfig()//                .setDbName("credit.db")                // 不设置dbDir时, 默认存储在app的私有目录.//                .setDbDir(new File("/sdcard")) // "sdcard"的写法并非最佳实践, 这里为了简单, 先这样写了.                .setDbVersion(2)                .setDbOpenListener(new DbManager.DbOpenListener() {                    @Override                    public void onDbOpened(DbManager db) {                        // 开启WAL, 对写入加速提升巨大                        db.getDatabase().enableWriteAheadLogging();                    }                })                .setTableCreateListener(new DbManager.TableCreateListener() {                    @Override                    public void onTableCreated(DbManager db, TableEntity<?> table) {                        Log.d(TAG,"onTableCreated: "+ table.toString());                    }                })                .setDbUpgradeListener(new DbManager.DbUpgradeListener() {                    @Override                    public void onUpgrade(DbManager db, int oldVersion, int newVersion) {                        // TODO: ...                        // db.addColumn(...);                        // db.dropTable(...);                        // ...                        // or                        // db.dropDb();                    }                });//        try {//            x.getDb(daoConfig).dropTable(SurInfo.class);//        } catch (DbException e) {//            e.printStackTrace();//        }    }    public  static   DbManager getDbManager(){        return  x.getDb(daoConfig);    }    // 获取ApplicationContext    public static Context getContext() {        return mApplicationContext;    }}


在需要的Activity或者Service以及一些自己封装的工具类中可以调用.

CreditApplication.getDbManager()


查询操作:

SurInfoField surInfoField = CreditApplication.getDbManager().selector(SurInfoField.class)
.where("fieldId","=",fieldId).findFirst();


如果Where的查询条件比较长也可以分开了写.
WhereBuilder builder = WhereBuilder.b("templateId", "in", integerList);
 List<TemplateList> list = CreditApplication.getDbManager().selector(TemplateList.class)
.where(builder).findAll();


添加操作:

 CreditApplication.getDbManager().saveOrUpdate(updateFileFieldList);


删除操作:

 CreditApplication .getDbManager().deleteById(FileField.class,deleteFileFieldList);

Gradle配置:

compile 'org.xutils:xutils:3.3.38'




1 0
原创粉丝点击