GreenDao基本使用_

来源:互联网 发布:sql查询结果导出excel 编辑:程序博客网 时间:2024/04/30 09:28

Ben类:

@Entitypublic class User {    @Id    private long id;    @Property    private String name;    @Property    private int age;

MyUserDao:

public class MyUserDao {    Context context;    public MyUserDao(Context context) {        this.context = context;    }    /**     * 插入一条数据     */    public void insertUser(User user) {        DaoMaster daoMaster = new DaoMaster(DBManager.getInstance(context).getWritableDatabase());        DaoSession daoSession = daoMaster.newSession();        UserDao userDao = daoSession.getUserDao();        userDao.insert(user);    }    /**     * 插入用户集合     *     * @param users     */    public void insertUserList(List<User> users) {        if (users == null || users.isEmpty()) {            return;        }        DaoMaster daoMaster = new DaoMaster(DBManager.getInstance(context).getWritableDatabase());        DaoSession daoSession = daoMaster.newSession();        UserDao userDao = daoSession.getUserDao();        userDao.insertInTx(users);    }    /**     * 查询用户列表     */    public List<User> queryUserList() {        DaoMaster daoMaster = new DaoMaster(DBManager.getInstance(context).getReadableDatabase());        DaoSession daoSession = daoMaster.newSession();        UserDao userDao = daoSession.getUserDao();        QueryBuilder<User> qb = userDao.queryBuilder();        List<User> list = qb.list();        return list;    }    /**     * 查询用户列表     */    public List<User> queryUserList(int age) {        DaoMaster daoMaster = new DaoMaster(DBManager.getInstance(context).getReadableDatabase());        DaoSession daoSession = daoMaster.newSession();        UserDao userDao = daoSession.getUserDao();        QueryBuilder<User> qb = userDao.queryBuilder();        qb.where(UserDao.Properties.Age.gt(age)).orderAsc(UserDao.Properties.Age);        List<User> list = qb.list();        return list;    }    /**     * 更新一条记录     *     * @param user     */    public void updateUser(User user) {        DaoMaster daoMaster = new DaoMaster(DBManager.getInstance(context).getWritableDatabase());        DaoSession daoSession = daoMaster.newSession();        UserDao userDao = daoSession.getUserDao();        userDao.update(user);    }    /**     * 删除一条记录     *     * @param user     */    public void deleteUser(User user) {        DaoMaster daoMaster = new DaoMaster(DBManager.getInstance(context).getWritableDatabase());        DaoSession daoSession = daoMaster.newSession();        UserDao userDao = daoSession.getUserDao();        userDao.delete(user);    }}

DBManager:

public class DBManager {    private final static String dbName = "test_db";    private static DBManager mInstance;    private DaoMaster.DevOpenHelper openHelper;    private Context context;    private DBManager(Context context) {        this.context = context;        openHelper = new DaoMaster.DevOpenHelper(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;    }    public SQLiteDatabase getReadableDatabase() {        if (openHelper == null) {            openHelper = new DaoMaster.DevOpenHelper(context, dbName, null);        }        SQLiteDatabase db = openHelper.getReadableDatabase();        return db;    }    public SQLiteDatabase getWritableDatabase() {        if (openHelper == null) {            openHelper = new DaoMaster.DevOpenHelper(context, dbName, null);        }        SQLiteDatabase db = openHelper.getWritableDatabase();        return db;    }}

MainActivity:

public class MainActivity extends AppCompatActivity {    private MyUserDao dao;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        dao = new MyUserDao(this);        for (int i = 20; i < 25; i++) {            User user = new User();            user.setId(Long.valueOf(i));            user.setAge(i * 3);            user.setName("第" + i + "人");            dao.insertUser(user);        }        List<User> userList = dao.queryUserList();        for (User user : userList) {            Log.e("TAG", "queryUserList--before-->" + user.getId() + "--" + user.getName() +"--"+user.getAge());            if (user.getId() == 10) {                dao.deleteUser(user);            }            if (user.getId() == 13) {                user.setAge(25);                dao.updateUser(user);            }        }        userList = dao.queryUserList();        for (User user : userList) {            Log.e("TAG", "queryUserList--after--->" + user.getId() + "---" + user.getName()+"--"+user.getAge());        }    }}


原创粉丝点击