OrmLite数据库切换
来源:互联网 发布:如何设置php头部 编辑:程序博客网 时间:2024/06/14 11:15
当应用由不同的用户登录时,我们一般会对不同的用户创建不同的数据库。所以,当用户改变时,我们也应当切换到该用户相应的数据库上。那么,如何做呢?
测试
我们操作数据库,最终都是通过DatabaseHelper实例来处理的,那好办,我们只要改变DatabaseHelper实例就可以了。我们把实例置为空,根据新的数据库名生成新的实例。
以下代码在http://blog.csdn.net/dingfengnupt88/article/details/52129439基础上修改。
实现
public void reset(Context context, String dbName) { DB_NAME = dbName; if (instance != null) { instance = null; } getDatabaseHelper(context); }当然,这个时候Dao对象也需要重新生成,不然还是处理之前的数据库,我们放到Helper类中实现,
public void reset(String db) { DatabaseHelper.getDatabaseHelper(mContext).reset(mContext, db); mStudentDao = new BaseDaoImpl<>(mContext, Student.class); mProfessionDao = new BaseDaoImpl<>(mContext, Profession.class); mWorkerDao = new BaseDaoImpl<>(mContext, Worker.class); }
测试
private void add() { ArrayList<Student> list = new ArrayList<>(); for (int i=0; i<10; i++) { Student student = new Student(i, "zhangsan", "Computer"); list.add(student); } Helper.getInstance().getStudentDao().insertList(list); updateListView(); } private void add2() { ArrayList<Student> list = new ArrayList<>(); for (int i=0; i<20; i++) { Student student = new Student(i, "lisi", "English"); list.add(student); } Helper.getInstance().getStudentDao().insertList(list); updateListView(); } private void changeDb() { String db = Helper.getInstance().getDatabaseName(); if ("new.db".equals(db)) { Helper.getInstance().reset("ormlite.db"); } else { Helper.getInstance().reset("new.db"); } updateListView(); } private void updateListView() { List<Student> list = Helper.getInstance().getStudentDao().queryAll(); mList.clear(); mList.addAll(list); mAdapter.notifyDataSetChanged(); }
先在ormlite.db中添加10个学生,然后切换到new.db中,这个时候数据时空的,然后添加20个学生,再切换到ormlite.db中,数据有变成了之前添加的10个学生。
效果如下,
源码地址
0 0
- OrmLite数据库切换
- Ormlite数据库
- OrmLite数据库
- Android数据库ORMlite框架
- android Ormlite数据库更新
- Android ORMLite数据库简介
- Android数据库使用(ORMLite)
- Android数据库ORMlite框架
- 使用ormlite封装数据库
- 关系数据库Ormlite
- Android ORMLite数据库简介
- ORMLite操作数据库
- Android 数据库框架ormlite
- Android 数据库ORMLite用法
- OrmLite数据库升级
- 数据库之OrmLite
- 数据库开源ormlite
- Android数据库框架ORMLite
- python中list、tuple和set的基础知识(一)
- 通过镜像下载地址安装Android SDK
- 构建MySQL(5.6.22)Docker镜像遇到的问题
- 泛化理论(举一反三)
- POJ 3693 Maximum repetition substring
- OrmLite数据库切换
- eclipse快捷键
- textView的学习使用
- Intellij IDEA快捷键
- SQL学习笔记
- oracle11g安装地址链接
- Button按钮实现按下不同状态切换功能
- Android UI之半圆式卫星菜单(无动画)
- 自己动手写一个轻量级的Android网络请求框架