平台网站建设方案,公司小程序如何申请,秦皇岛黄金海岸旅游攻略,seo网站推广价格介绍#xff1a;greenDAO 是一款轻量级的 Android ORM 框架#xff0c;将 Java 对象映射到 SQLite 数据库中#xff0c;我们操作数据库的时候#xff0c;不在需要编写复杂的 SQL语句#xff0c; 在性能方面#xff0c;greenDAO 针对 Android 进行了高度优化#xff0c; …介绍greenDAO 是一款轻量级的 Android ORM 框架将 Java 对象映射到 SQLite 数据库中我们操作数据库的时候不在需要编写复杂的 SQL语句 在性能方面greenDAO 针对 Android 进行了高度优化 最小的内存开销 、依赖体积小。适合存储大量的数据。轻量级数据库是指一种用于存储和管理小型数据集的数据库系统。它们可以在普通的个人电脑上运行而不需要强大的服务器设备。它们通常只需要很少的内存和存储空间因此最适合小型应用。轻量级数据库的例子包括SQLite、MongoDB和Appache Cassandra。集成的步骤在APP下的gradle中 implementation org.greenrobot:greendao:3.3.0 // greendaogreendao{schemaVersion 1 //版本号targetGenDir src/main/java //greenDao实体类包文件夹daoPackage com.example.teleprompter.greenDao //输出dao的数据库操作实体类文件夹相对路径 包名自定义路径名称包将创建于包名的直接路径下}在集成的时候我的项目级gradle是这样的在项目级别的gradle中classpath org.greenrobot:greendao-gradle-plugin:3.3.0发现在项目级的gradle和之前的格式不同。plugins {id com.android.application version 7.2.1 apply falseid com.android.library version 7.2.1 apply false
}task clean(type: Delete) {delete rootProject.buildDir
}看官网后知道是2022年1月的Gradle7.1.0版本做的更新导致的buildscript闭包可以放在plugins闭包前面最后我的项目级gradle是这样的创建实体类然后通过在实体类上加注解来达到生成对应的数据模型。例如Entity
public class TelePromterBean {Id(autoincrement true)private Long id;Propertyprivate int number;//页面数量Propertyprivate String name;//页面名字Propertyprivate int fontSize;//字号// get()/set()}1. Entity标记一个实体类声明一个表一个实体类只能定义一张表可以添加如下参数1nameInDb表名2indexes定义索引可以跨越多个列3createInDb是否创建表4schema定义架构名称5active定义实体类有效性默认为true2. Id定义一列主键可以添加如下参数1nameInDb定义列名2autoincrement定义是否自增3generatedId如果主键没有显示的赋值则自动生成的3. Property定义属性列可以添加如下参数1nameInDb定义列名2not null定义是否非空3unique定义是否唯一4index定义是否索引4. ToOne定义一对一关系可以添加如下参数1nameInDb定义列名2unique定义是否唯一3not null定义是否非空4index定义是否索引5. ToMany定义一对多关系可以添加如下参数1nameInDb定义列名2unique定义是否唯一3not null定义是否非空4index定义是否索引5orderBy定义排序规则实体类创建完成后同步一下项目 然后就会生成如下增删改查
public class DBManger {private static final String TAG DBManger;private static final String dbName tele.db;private static DBManger mInstance;private final Context context;private DaoMaster.DevOpenHelper openHelper;public static DaoSession daoSession;public DBManger(Context context) {this.context context;openHelper new DaoMaster.DevOpenHelper(context, dbName, null);Database db openHelper.getWritableDb();daoSession new DaoMaster(db).newSession();}//单例public static DBManger getInstance(Context context) {if (mInstance null) {synchronized (DBManger.class) {if (mInstance null) {mInstance new DBManger(context);}}}return mInstance;}//可读数据库private SQLiteDatabase getReadableDatabase() {if (openHelper null) {openHelper new DaoMaster.DevOpenHelper(context, dbName, null);}SQLiteDatabase db openHelper.getReadableDatabase();return db;}//可写数据库private SQLiteDatabase getWritableDatabase() {if (openHelper null) {openHelper new DaoMaster.DevOpenHelper(context, dbName, null);}SQLiteDatabase db openHelper.getWritableDatabase();return db;}//插入public void insert(TelePromterBean promterBean) {DaoMaster daoMaster new DaoMaster(getWritableDatabase());DaoSession daoSession daoMaster.newSession();TelePromterBeanDao dao daoSession.getTelePromterBeanDao();dao.insert(promterBean);}//插入数据集合public void insertUserList(ListTelePromterBean promterBeanList) {if (promterBeanList null || promterBeanList.isEmpty()) {return;}DaoMaster daoMaster new DaoMaster(getWritableDatabase());DaoSession daoSession daoMaster.newSession();TelePromterBeanDao dao daoSession.getTelePromterBeanDao();dao.insertInTx(promterBeanList);}//删除数据public void delete(TelePromterBean promterBean) {DaoMaster daoMaster new DaoMaster(getWritableDatabase());DaoSession daoSession daoMaster.newSession();TelePromterBeanDao dao daoSession.getTelePromterBeanDao();dao.delete(promterBean);}//更改public void update(TelePromterBean promterBean) {Log.d(TAG, update: promterBean);DaoMaster daoMaster new DaoMaster(getWritableDatabase());DaoSession daoSession daoMaster.newSession();TelePromterBeanDao dao daoSession.getTelePromterBeanDao();dao.update(promterBean);}//查询public ArrayListTelePromterBean query() {DaoMaster daoMaster new DaoMaster(getReadableDatabase());DaoSession daoSession daoMaster.newSession();TelePromterBeanDao dao daoSession.getTelePromterBeanDao();QueryBuilderTelePromterBean qb dao.queryBuilder();ArrayListTelePromterBean list (ArrayListTelePromterBean) qb.list();
// for (int i 0; i list.size(); i) {
// list.get(i).setIsFlush(false);
// }return list;}
}
在项目中使用TelePromterBean promterBean new TelePromterBean(null, i, , 20, , false);DBManger.getInstance(MainActivity.this).insert(promterBean);DBManger.getInstance(MainActivity.this).delete(promterBean);DBManger.getInstance(MainActivity.this).update(promterBean);DBManger.getInstance(MainActivity.this).query();