多语言展示
当前在线:1742今日阅读:60今日分享:41

android常用orm框架greenDAO整合应用时的调用

在之前讲解了简单的greenDAO整合和和使用。现在讲解复杂的整合使用。还是一开始展示项目结构
工具/原料

编译工具:Eclipse

方法/步骤
1

首先说明一下,原来声明的方法。

2

项目中我们创建了一个Application,用Application来管理DaoMaster和DaoSession。这个也是官方推荐的方法。类名:App_Applicationpublic class App_Application extends Application {  private static App_Application mInstance = null; ///////grendao框架用到的S///////////////////////////////////////////////////////////        private static DaoMaster daoMaster;      private static DaoSession daoSession;    ///////grendao框架用到的S///////////////////////////////////////////////////////////   @Override public void onCreate() {  // TODO 自动生成的方法存根  super.onCreate();    if(mInstance == null)              mInstance = this;     }   ///////grendao框架用到的S///////////////////////////////////////////////////////////     /**    * 取得DaoMaster    *     * @param context    * @return    */    public static DaoMaster getDaoMaster(Context context) {        if (daoMaster == null) {            OpenHelper helper = new DaoMaster.DevOpenHelper(context,Focus.DATA_NAME, null);            daoMaster = new DaoMaster(helper.getWritableDatabase());        }        return daoMaster;    }        /**    * 取得DaoSession    *     * @param context    * @return    */    public static DaoSession getDaoSession(Context context) {        if (daoSession == null) {            if (daoMaster == null) {                daoMaster = getDaoMaster(context);            }            daoSession = daoMaster.newSession();        }        return daoSession;    }     ///////grendao框架用到的E///////////////////////////////////////////////////////////  }

3

android配置文件如图

4

配置文件xml如下:                                                                                   

5

为了方便的操作数据库。我对表单独写了一个工具类。类名:Db_user_Operations用户信息(数据库操作)

6

Db_user_Operations类的代码如下:/** * 用户信息(数据库操作) *  * @author aboutych *  */public class Db_user_Operations { private static final String TAG = Db_user_Operations.class.getSimpleName(); private static Db_user_Operations instance; private static Context appContext; private DaoSession mDaoSession; private Db_userDao db_userDao; private Db_user_Operations() {  super(); } public static Db_user_Operations getInstance(Context context) {  if (instance == null) {   instance = new Db_user_Operations();   if (appContext == null) {    appContext = context.getApplicationContext();   }   instance.mDaoSession = App_Application.getDaoSession(context);   instance.db_userDao = instance.mDaoSession.getDb_userDao();  }  return instance; } /**  * 通过id返回Db_user  * @param id  * @return Db_user  */ public Db_user load_Db_userDao(long id) {  return db_userDao.load(id); } /**  * 查询所有  * @return List  */ public List loadAll_Db_userDao() {  return db_userDao.loadAll(); } /**  * 通过条件查询  * @param where  * @param params  * @return  */ public List query_Db_userDao(String where, String... params) {  return db_userDao.queryRaw(where, params); } /**  * 插入和更新Db_user表  *   * @param db_user  * @return insert or update note id  */ public long save_Db_userDao(Db_user db_user) {  return db_userDao.insertOrReplace(db_user); }    /**  * 插入和更新Db_user表(Lists多条信息)  * @param list  */ public void save_Db_userDao_Lists(final List list) {  if (list == null || list.isEmpty()) {   return;  }  db_userDao.getSession().runInTx(new Runnable() {   @Override   public void run() {    for (int i = 0; i < list.size(); i++) {     Db_user db_user = list.get(i);     db_userDao.insertOrReplace(db_user);    }   }  }); } /**  * 删除表所有数据  */ public void deleteAllNote() {  db_userDao.deleteAll(); } /**  * 删除相应id的数据  *   * @param id  */ public void delete_Db_userDao(long id) {  db_userDao.deleteByKey(id);  Log.i(TAG, 'delete'); } /**  * 删除Db_user表  * @param db_user  */ public void delete_Db_userDao(Db_user db_user) {  db_userDao.delete(db_user); } }

7

在页面类中,调用方法如下: @Override protected void onCreate(Bundle savedInstanceState) {  super.onCreate(savedInstanceState);  setContentView(R.layout.activity_main);  mContext = this;//调用Db_user_Operations的.getInstance创建daoMaster  db_user_Operations = Db_user_Operations.getInstance(mContext);  //给Db_user添加数据信息Db_user db_user = new Db_user(null, 'hhh', 'user_name', 'loginName', 'pwd', 'qq', 'wechat', 'phone', 'deviceno', 'type', 'school', 'version');  //执行插入方法Long return_id = db_user_Operations.save_Db_userDao(db_user);  System.out.println('return_id'+return_id); }

注意事项
1

本步骤需要一定代码基础

2

程序代码以代码片段的形式展示

推荐信息