Android数据库框架 - GreenDao轻量级的对象关系映射框架,永久告别sqlite 下载本文

内容发布更新时间 : 2024/5/21 1:50:16星期一 下面是文章的全部内容请认真阅读。

/**

* 实现功能 * 1.创建数据库 * 2.创建数据库的表 * 3.对数据库的升级 * 4.对数据库的增删查改 */

//TAG

public static final String TAG = DaoManager.class.getSimpleName(); //数据库名称

private static final String DB_NAME = \ //多线程访问

private volatile static DaoManager manager; //操作类

private static DaoMaster.DevOpenHelper helper; //上下文

private Context mContext; //核心类

private static DaoMaster daoMaster; private DaoSession daoSession;

//单例模式

public static DaoManager getInstance() { DaoManager instance = null; if (manager == null) {

synchronized (DaoManager.class) { if (instance == null) {

instance = new DaoManager(); manager = instance; } } }

return instance; }

//传递上下文

public void initManager(Context context){ this.mContext = context; }

/**

* 判断是否存在数据库,如果没有则创建 *

* @return */

public DaoMaster getDaoMaster() { if (daoMaster == null) {

helper = new DaoMaster.DevOpenHelper(mContext, DB_NAME, null); daoMaster = new DaoMaster(helper.getWritableDatabase()); }

return daoMaster; }

/**

* 完成对数据库的操作,只是个接口 *

* @return */

public DaoSession getDaoSession() { if (daoSession == null) { if (daoMaster == null) {

daoMaster = getDaoMaster(); }

daoSession = daoMaster.newSession(); }

return daoSession; }

/**

* 打开输出日志,默认关闭 */

public void setDebug() {

QueryBuilder.LOG_SQL = true; QueryBuilder.LOG_VALUES = true; }

/**

* 关闭DaoSession */

public void closeDaoSession() { if (daoSession != null) { daoSession.clear(); daoSession = null; } }

/**

* 关闭Helper */

public void closeHelper() { if (helper != null) { helper.close(); helper = null; } }

/**

* 关闭所有的操作 */

public void closeConnection() { closeHelper(); closeDaoSession(); } }

这个类能初始化数据库的很多操作,不过这样还不够,我们需要再写个实在点的操作类,现在只是单单实现一个插入的动作 package com.lgl.greendao;

import android.content.Context;

import com.student.entity.Student; /**

* 完成对某一张表的具体操作 * Created by LGL on 2016/7/2. */

public class CommonUtils {

private DaoManager daoManager;

//构造方法

public CommonUtils(Context context) {

daoManager = DaoManager.getInstance(); daoManager.initManager(context); }

/**

* 对数据库中student表的插入操作 * @param student * @return */

public boolean insertStudent(Student student) { boolean flag = false;

flag = daoManager.getDaoSession().insert(student) != -1 ? true : false; return flag; } }

五.插入

OK,那我们先去看看sql的插入是怎么做的,定义一个button