对GreenDao数据库操作的封装

/**

  • Entity mapped to table USER.

*/

public class User {

private Long id;

private String name;

private Integer age;

public User() {

}

public User(Long id) {

this.id = id;

}

public User(Long id, String name, Integer age) {

this.id = id;

this.name = name;

this.age = age;

}

public Long getId() {

return id;

}

public void setId(Long id) {

this.id = id;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public Integer getAge() {

return age;

}

public void setAge(Integer age) {

this.age = age;

}

}

相应地,系统会生成一个UserDao文件,里面实现了对User表的增删改查。

// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT.

/**

  • DAO for table USER.

*/

public class UserDao extends AbstractDao<User, Long> {

public static final String TABLENAME = “USER”;

/**

  • Properties of entity User.

  • Can be used for QueryBuilder and for referencing column names.

*/

public static class Properties {

public final static Property Id = new Property(0, Long.class, “id”, true, “_id”);

public final static Property Name = new Property(1, String.class, “name”, false, “NAME”);

public final static Property Age = new Property(2, Integer.class, “age”, false, “AGE”);

};

public UserDao(DaoConfig config) {

super(config);

}

public UserDao(DaoConfig config, DaoSession daoSession) {

super(config, daoSession);

}

/** Creates the underlying database table. */

public static void createTable(SQLiteDatabase db, boolean ifNotExists) {

String constraint = ifNotExists? "IF NOT EXISTS ": “”;

db.execSQL("CREATE TABLE " + constraint + “‘USER’ (” + //

“‘_id’ INTEGER PRIMARY KEY ,” + // 0: id

“‘NAME’ TEXT,” + // 1: name

“‘AGE’ INTEGER);”); // 2: age

}

/** Drops the underlying database table. */

public static void dropTable(SQLiteDatabase db, boolean ifExists) {

String sql = "DROP TABLE " + (ifExists ? "IF EXISTS " : “”) + “‘USER’”;

db.execSQL(sql);

}

/** @inheritdoc */

@Override

protected void bindValues(SQLiteStatement stmt, User entity) {

stmt.clearBindings();

Long id = entity.getId();

if (id != null) {

stmt.bindLong(1, id);

}

String name = entity.getName();

if (name != null) {

stmt.bindString(2, name);

}

Integer age = entity.getAge();

if (age != null) {

stmt.bindLong(3, age);

}

}

/** @inheritdoc */

@Override

public Long readKey(Cursor cursor, int offset) {

return cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0);

}

/** @inheritdoc */

@Override

public User readEntity(Cursor cursor, int offset) {

User entity = new User( //

cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id

cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // name

cursor.isNull(offset + 2) ? null : cursor.getInt(offset + 2) // age

);

return entity;

}

/** @inheritdoc */

@Override

public void readEntity(Cursor cursor, User entity, int offset) {

entity.setId(cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0));

entity.setName(cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1));

entity.setAge(cursor.isNull(offset + 2) ? null : cursor.getInt(offset + 2));

}

/** @inheritdoc */

@Override

protected Long updateKeyAfterInsert(User entity, long rowId) {

entity.setId(rowId);

return rowId;

}

/** @inheritdoc */

@Override

public Long getKey(User entity) {

if(entity != null) {

return entity.getId();

} else {

return null;

}

}

/** @inheritdoc */

@Override

protected boolean isEntityUpdateable() {

return true;

}

}

还有一个DaoSession,里面存放了各种表的Dao文件:

// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT.

/**

  • {@inheritDoc}

  • @see de.greenrobot.dao.AbstractDaoSession

*/

public class DaoSession extends AbstractDaoSession {

private final DaoConfig userDaoConfig;

private final UserDao userDao;

public DaoSession(SQLiteDatabase db, IdentityScopeType type, Map<Class<? extends AbstractDao<?, ?>>, DaoConfig>

daoConfigMap) {

super(db);

userDaoConfig = daoConfigMap.get(UserDao.class).clone();

userDaoConfig.initIdentityScope(type);

userDao = new UserDao(userDaoConfig, this);

registerDao(User.class, userDao);

}

public void clear() {

userDaoConfig.getIdentityScope().clear();

}

public UserDao getUserDao() {

return userDao;

}

}

如果要通过UserDao操作数据库表,还需要经过以下步骤:

if (daoMaster == null) {

最后

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助

因此我收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
(img-przjIQ9e-1715898786280)]

[外链图片转存中…(img-KFksSpf9-1715898786283)]

[外链图片转存中…(img-L0hji87t-1715898786283)]

[外链图片转存中…(img-fRf6gjFD-1715898786284)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

  • 22
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值