GreenDao介绍和使用

【数据库】greendao的使用(greendao+SQLite) 1.安装SDK(由于之前是java,电脑有jdk环境,省略,SDK需要配置环境,和jdk基本相同,百度就完了)操作 2.安装Android Studio 以上都可以在https://www.androiddevtools.cn/下载 3.开发登录,注册,修改密码功能 要求: 1. 在登录页面增加注册按钮,点击按钮进入注册页面, 2. 使用greendao,设计一个user基类的数据库 3. 注册页面与登录页面风格一致,但是密码输入行有2行,点击注册需要用户名和两个密码是否为空,是否符合之前的账号密 阅读详情
greenDao是一个将 对象(java对象) 映射到 SQLite数据库 中的轻量且快速的 ORM解决方案 。
对象关系映射(英语: (Object Relational Mapping ,简称 ORM ,或 O/RM ,或 O/R mapping ),是一种程序技术,用于 实现面向对象编程语言里不同类型系统的数据之间的转换 [1]    。
关于greenDAO的概念可以看官网 greenDAO
github源码库
1. 什么是greenDao
弄明白greenDao之前我们应该先了解什么是ORM( Object Relation Mapping 即 对象关系映射),说白了就是将 面向对象编程语言里的 对象与数据库关联起来的一种技术,而greenDao就是实现这种技术之一,所以说greenDao其实就是一种将 java object 与SQLite Database关联起来的桥梁,它们之间的关系 如下图所示;

2. 为什么要使用greenDao
greenDao可以说是当今最流行,最高效而且还在迭代的 关系型数据库。而且greenDao3.0还支持 RxJava操作,greenDao如此受欢迎离不开以下几点:
  • 存取速度快每秒中可以操作数千个实体 下图是几种常见关系型数据库性能比较;
几种常用数据库比较


  • 支持数据库加密支持android原生的数据库SQLite,也支持SQLCipher(在SQLite基础上加密型数据库)。
  • 轻量级greenDao的代码库仅仅100k大小
  • 激活实体处于激活状态下的实体可以有更多操作方法
  • 支持缓存能够将使用的过的实体存在缓存中,下次使用时可以直接从缓存中取,这样可以使性能提高N个数量级
  • 代码自动生成
greenDao 会根据modle类(java bean类)自动生成实体类(entities)和Dao对象,并且Dao对象是根据entities类量身定做的并且一 一对应。

总结greenDAO 优势
1、一个精简的库
2、性能最大化
3、内存开销最小化
4、易于使用的 APIs
5、对 Android 进行高度优化
GreenDao 3.0使用
GreenDao 3.0采用注解的方式来定义实体类,通过gradle插件生成相应的代码。
3.1.1 配置GreenDao
buildscript { repositories { mavenCentral() } dependencies { classpath 'org.greenrobot:greendao-gradle-plugin:3.2.0'//greenDao生产代码插件 }apply plugin: 'org.greenrobot.greendao'//greendao插件dependencies { compile 'org.greenrobot:greendao:3.2.0'
}
配置数据库信息
greendao { schemaVersion 1 daoPackage 'com.anye.greendao.gen' targetGenDir 'src/main/java' }
在gradle的根模块中加入上述代码,就完成了我们的基本配置了。
属性介绍:
schemaVersion--> 指定数据库schema版本号,也可以理解成 数据库版本号,迁移等操作会用到;
daoPackage --> dao的包名,包名默认是entity所在的包;(可以自定义输出目录,如果不定义,默认是entity的包)
targetGenDir --> 生成数据库文件的目录;/设置DaoMaster 、DaoSession、Dao目录,这个是greendao默认生成的三个重要的类

3.1.2 核心类介绍


**DaoMaster: **
是GreenDao的入口也是greenDao顶级对象,对于一个指定的表单持有数据库对象(SQLite数据库)并且能够管理DAO类
能够创建表和删除表
其内部类OpenHelper 与DevOpenHelper是创建SQlite数据库的SQLiteOpenHelper的具体实现
DaoSession:
对于一个指定的表单可以管理所有的Dao 对象。
也能够对实体类执行 insert ,load,update,refresh.delete操作。
DaoSession也能跟踪 identity scope:即session查询后的实体会存在缓存中,并给该实体生成一个flag来追踪该实体,下次再次查询时会直接从缓存中取出来而不是从数据库中取出来
DAOS
能够持久访问和查询实体类
比起DaoSession有更多的持久化方法 count, loadAll,insertInt等等;
Entities - 自动生成的代码,一般情况下与javaBean对象的属性一一对应。

3.1.3 构建Model类
Molde类需要用java类来定义并且可以通过GreenDao中的注释来表明Model中的每个属性在数据库的中该如何定义; 定义model类后点击Make project选项GreenDao就会自动生成DaoMaster,DaoSession,和DAOS类,生成的代码将会保存在预先在budle gradle中设置的位置
  • 实体和注释GreenDao 通过注释来定义表单与实体
@Entitypublic class User { @Id private Long id;
private String name; @Transient private int tempUsageCount; // 没有存入数据库中}
@Entity
  • 告诉GreenDao 该Bean类需要持久化。只有使用@Entity注释的Bean类才能被dao类操作;
  • @Entity可以在不使用参数下使用,但是也可以给Entity配置参数,其参数如下
类注解:
//如果该实体属于多个表单,可以使用该参数; schema = "myschema", // 该实体属于激活状态,激活状态的实体有更新,删除,刷新方法; active = true, // 给这个表指定一个名字,默认情况下名字是类名 nameInDb = "AWESOME_USERS", // 可以给多个属性定义索引和其他属性. indexes = { @Index(value = "name DESC", unique = true) }, //是否使用GreenDao创建该表. createInDb = false, // 是否所有的属性构造器都应该被生成,无参构造器总是被要求 generateConstructors = true, // 如果该类中没有set get方法是否自动生成 generateGettersSetters = true
属性注解:
  • @ID 一般会选择long/Long属性作为Entity ID(即数据库中的主键)autoincrement=true表示主键会自增如果false就会使用旧值
  • @Property 可以自定义一个该属性在数据库中的名称,默认情况下数据库中该属性名称是Bean对象中的 属性名但是不是以驼峰式而是以大写与下划线组合形式来命名的比如:customName将命名为 CUSTOM_NAME;注意:外键不能使用该属性;
  • @NotNull 确保属性值不会为null值;
  • @Transient 使用该注释的属性不会被存入数据库中;
  • @Unique 将属性变成唯一约束属性;也就是说在数据库中该值必须唯一
  • @Generated 提示开发者该属性不能被修改;并且实体类的方法,属性,构造器一旦被@Generated注释就不能被再次修改,否则或报错
Error:Execution failed for task ':app:greendao'.> Constructor (see ExampleEntity:21) has been changed after generation.Please either mark it with @Keep annotation instead of @Generated to keep it untouched,or use @Generated (without hash) to allow to replace it.
这是因为在通过javabean对象自动生成entities类时,greenDao会增加实体类代码,@Generated注释部分与GreenDao增加的代码相关,胡乱修改@Generated代码,就会导致entities部分属性与javabean不匹配导致报错;有俩种方法可以避免这种错误
  • 还原@Generated 改动的部分,当然你也可以完全删除@Generated 注释的部分下一次 app build时将会自动生成;
  • 使用@Keep 代替@Generated 这将告诉greenDao 不会使用该属性注释的代码,但是这种改变可能会破坏entities类和greenDAO的其他部分的连接;注意:默认情况下 greenDao会使用合理的默认值去设置实体类,因此开发者不需要为每个属性都添加注释
@Entitypublic class User { @Id(autoincrement = true) private Long id; @Property(nameInDb = "USERNAME") private String name; @NotNull private int repos; @Transient private int tempUsageCount; ...}

  • 主键限制
每个实体类都应该有一个long或者LONG型属性作为主键;如果你不想用long或者LONG型作为主键,你可以使用一个唯一索引(使用@Index(unique = true)注释使普通属性改变成唯一索引属性)属性作为关键属性。
@Idprivate Long id; @Index(unique = true)private String key;
  • 索引属性
使用 @Index 可以将一个属性变为数据库索引;其有两个参数
  • name :不使用默认名称,自定义索引名称
  • unique : 给索引增加一个唯一约束,迫使该值唯一
@Entitypublic class User { @Id private Long id; @Index(unique = true) private String name;}
  • 核心代码初始化
创建数据库过程
// 下面代码仅仅需要执行一次,一般会放在applicationhelper = new DaoMaster.DevOpenHelper(this, "notes-db", null);db = helper.getWritableDatabase();daoMaster = new DaoMaster(db);daoSession = daoMaster.newSession();// 在activity或者fragment中获取Dao对象noteDao = daoSession.getNoteDao()
完成以上所有工作以后,我们的数据库就已经自动生成了,接下来就可以对数据库进行操作了;
  • 增删改查
greenDao的增,删 ,改操作比较简单分别调用insert(),delete(),update()方法即可,save()方法比较特殊既能执行插入操作也能执行修改操作这个具体的可以查看 greenDaoAPI
Query
与原生SQLitedatabases的查询操作相比,greenDao Query简直不能再简单;greenDao 使用QueryBuilder构建查询语句也支持原生的SQL查询语句
  • 简单的查询语句 在用户表中查询叫姓“Joe”的所有的用户:
List joes = userDao.queryBuilder() .where(Properties.FirstName.eq("Joe")) .orderAsc(Properties.LastName) .list();
  • 嵌套挑去查询语句:查询一个出生在1970年10月或者以后的"joe"用户
QueryBuilder qb = userDao.queryBuilder();qb.where(Properties.FirstName.eq("Joe"),//第一个约束条件姓乔qb.or(Properties.YearOfBirth.gt(1970),//或者出生日期大于1970年qb.and(Properties.YearOfBirth.eq(1970), Properties.MonthOfBirth.ge(10))//并且在1970年出生 但是月份大于10月的));List youngJoes = qb.list();
greenDao除了eq()操作之外还有很多其他方法大大方便了我们日常查询操作比如:- eq():== - noteq():!= - gt(): >- lt():< - ge:>=- le:<= - like():包含- between:俩者之间- in:在某个值内 - notIn:不在某个值内
  • 分页查询
  • limit(int): 限制查询的数量;
    • offset(int): 每次返回的数量; offset不能单独使用;
  • 查询与LazyList类
  • Query : Query类表示一个查询能够执行很多次;而当通过QueryBuilder的任何查询方法(eg:list())来获取查询结果时,querybuilder都会 在其内部创建Query来执行查询语句的;如果执行多次查询应该使用Query对象; 如果只想获取一个结果时可以使用Query(or QueryBuilder)中的unique()方法;
    • LazyList : 可以通过以下方法获取查询结果集合;
    • list() 缓存查询结果;list()类型一般为ArrayList
    • listLazy() 懒查询,只有当调用list()中的实体对象时才会执行查询操作并且只缓存第一次被查询的结果,需要关闭
    • listlazyUncached() 懒查询,只有当调用list()中的实体对象时才会执行查询操作并且不缓存;
    • listIterator() 对查询结果进行遍历,不缓存,需要关闭;
后面三个方法是LazyList类中的方法,LazyList为了执行不同的缓存策略其内部持有数据库的cursor对象;一般情况下这三个方法执行完毕后会自动关闭cursor;但是防止在还没有执行完查询结果时,对象被终结cursor还是无法被关闭的情况发生,需要手动关闭close();
  • 多次执行查询语句
Query对象一旦生成就能多次被使用,你也可以为下一次查询增加查询条件
// fetch users with Joe as a first name born in 1970Query query = userDao.queryBuilder().where( Properties.FirstName.eq("Joe"), Properties.YearOfBirth.eq(1970)).build();List joesOf1970 = query.list(); // using the same Query object, we can change the parameters// to search for Marias born in 1977 later:query.setParameter(0, "Maria");query.setParameter(1, 1977);List mariasOf1977 = query.list();
  • 在多线程执行查询
如果有多条线程执行查询语句时需要调用forCurrentThread()方法将query对象与当前线程进行绑定,如果其他线程修改该Query对象,greenDao将会抛出一个异常;forCurrentThread()方法通过将Query创建时的时间作为 query标识;
  • 使用SQL查询
如果QueryBuilder不能满足需求可以使用以下俩种方法来实现你的需求;
  • 首选方法用SQL语句:
Query query = userDao.queryBuilder().where( new StringCondition("_ID IN " + "(SELECT USER_ID FROM USER_MESSAGE WHERE READ_FLAG = 0)")).build();

GreenDao工具类
public class GreenDaoUtils {
private DaoMaster daoMaster ;
private DaoSession daoSession ;
private SQLiteDatabase sqLiteDatabase ;
private DaoMaster.DevOpenHelper devOpenHelper ;
private volatile static GreenDaoUtils mInstance ;

private GreenDaoUtils() {

}

public static GreenDaoUtils getInstance() {

if ( mInstance == null ) {
synchronized (GreenDaoUtils. class ) {
if ( mInstance == null ) {
mInstance = new GreenDaoUtils();
}
}
}
return mInstance ;
}

public void init() {
setDatabase();
}


private void setDatabase() {
// 通过 DaoMaster 的内部类 DevOpenHelper,你可以得到一个便利的 SQLiteOpenHelper 对象。
// 可能你已经注意到了,你并不需要去编写「CREATE TABLE」这样的 SQL 语句,因为 greenDAO 已经帮你做了。
// 注意:默认的 DaoMaster.DevOpenHelper 会在数据库升级时,删除所有的表,意味着这将导致数据的丢失。
// 所以,在正式的项目中,你还应该做一层封装,来实现数据库的安全升级。
devOpenHelper = new DaoMaster.DevOpenHelper(MyApplication. mInstance , "kson-db" , null );
sqLiteDatabase = devOpenHelper .getWritableDatabase();
// 注意:该数据库连接属于 DaoMaster,所以多个 Session 指的是相同的数据库连接。
daoMaster = new DaoMaster( sqLiteDatabase );
daoSession = daoMaster .newSession();
}

public DaoSession getDaoSession() {
return daoSession ;
}

public SQLiteDatabase getSqLiteDatabase() {
return sqLiteDatabase ;
}
}


UserDao dao = GreenDaoUtils. getInstance ().getDaoSession().getUserDao();
final Query query = dao.queryBuilder().build();
new Thread( new Runnable() {
@Override
public void run() {
query .forCurrentThread().list();
}
}).start();
}

实例:
//1.
DaoSession daoSession = GreenDaoUtils. getmInstance ().getDaoSession();
//2.
userDao = daoSession.getUserDao();

for ( int i = 0 ; i < 100 ; i++) {

User user = new User();

user.setAge(i);
user.setName( "kson" +i);

//3.添加数据库
userDao .insert(user);
}


// //查询数据库,query对象负责查询数据
Query query = userDao .queryBuilder().build(); //这是构建者模式
//把数据库列表转换成本地集合
List<User> list = query.list();

System. out .println( "size====" + query.list().size());

for (User user1 : list) {

System. out .println( "name:" + user1.getName());

}

// //第二种查询方式
// List<User> users = userDao.loadAll();
// for (User user1 : users) {
//
// System.out.println("name:" + user1.getName());
// //删除
// userDao.delete(user1);
//
// }

// //进阶查询方式
// String sql = "select * from user where name='kson' and age =100";//
// Query query1 = userDao.queryBuilder()
// .where(UserDao.Properties.Name.eq("kson"))
// .build();
//
// List<User> list1 = query1.list();
// for (User user1 : list1) {
//
// }
//
// for (int i = 0; i < 100; i++) {
//
// }

//删除所有的表内的行数据
// userDao.deleteAll();//跟上面for循环删除的功能是一样的

//修改数据表内数据
// user.setName("tttt");
// user.setAge(90);
// userDao.update(user);








// user.update();
// user.delete();
// user.refresh();



//分页查询
//offset和limit,offset从哪个行开始加载多少数据,limit每次限制加载多少条数据
// String sql2 = "select * from user where name='kson' and age =100 limit 10 offset 0";//




selectPage( 0 ); //第一页
// selectPage(1);//第二页
// selectPage(2);//第三页




使用 GreenDAO 构建高效 Android 数据库操作 创建 PersonDB.java 文件中,定义 GreenDAO 注解的实体类。通过 GreenDAO,可以轻松实现高效的数据库操作,简化开发流程并提升应用性能。本文介绍了如何在 Android 项目中集成 GreenDAO,定义实体类,生成 DAO 类以及进行基本的数据库操作。希望这篇文章能帮助你在项目中更好地使用 GreenDAO,实现高效的数据持久化管理。 阅读详情

相关推荐

Android ORM 框架之 greenDAO

Android ORM 框架之 greenDAO

是阿超 3042

Android ORM框架 GreenDao 的使用详解

一、前言 关于 Android 中常用的数据存储方式我们前面已经讲了 Sp 存储 和 文件存储,但是对于数据量比较大,并且结构复杂的数据我们想要存储只能通过数据库进行处理,Android 中提供了一个 SQLite 数据库,但是使用起来比较繁琐和复杂,所以 Android 又推出了 Room 持久性库,Room 持久性库在 SQLite 的基础上提供了一个抽象层,让用户能够在充分利用 SQLite 的强大功能的同时,获享更强健的数据库访问机制。但是我们今天不讲 Room 这个组件(以后讲 Jetpack

weixin_38478780的博客 1165

吉林大学软件工程章节测验 第九章 答案+解析

4.【判断题】估算软件规模有代码行技术和功能点技术两种方法,其中代码行方法估计实现一个功能所需要的源程序行数,其不依赖项目所使用的开发语言,并且具有较好的直观性。3.【单选题】软件项目估算时,若计划人员对每个功能分别按最佳的、可能的、悲观的三种情况给出功能点估计值,记作a, m, b,则估算的期望值E的公式为( )。8.【判断题】在工程网络图中,如果在由起始事件至终止事件所构成的一条路径上,所有事件的最早时刻都和最迟时刻都相同,那么这条路径就是关键路径。4.【单选题】配置管理贯穿软件开发的整个过程。

m0_51459931的博客 1430

【框架】GreenDao数据库框架

一、背景 Android数据库SQLite原生API SqliteOpenHelper不友好,所以出现了许多ORM框架来帮助我们处理数据库操作。所谓ORM框架,即Object-Relational Mapping,它的作用是在关系型数据库和对象之间做一个映射,这样,我们在具体的操作数据库的时候,就不需要再去和复杂的SQL语句打交道,只要像平时操作对象一样操作它就可以了。而GreenDao是基于Android的ORM框架中的佼佼者,优点如下: 性能(可能是Android上最快的ORM) 易用性(..

weixin_43526787的博客 2094

802.11 NDP Sounding

NDP Sounding1.NDP原理2.NDP 过程3.帧结构3.1 NDPA结构3.2 CBF帧 1.NDP原理 802.11n标准提供的波束成形技术,可以通过预先补偿发射天线的相位,让两条波束进行叠加以实现最好的效果 显式波束成形需要终端反馈信道信息: AP向STA发送探测数据(NDP: null data packet sounding) STA向AP反馈信道信息(Compressed beamforming) AP根据STA的反馈或自行计算的权重信息进行波束成形 2.NDP 过程 802.

weixin_45799954的博客 8262

软件项目质量管理

识别项目中涉及质量管理的不同角色,如项目经理、质量经理、测试人员等,明确每个角色的职责和任务,包括负责哪些质量管理活动和决策。1、编制软件项目的质量管理计划,包括确定项目的质量标准和要求,以及制定质量控制和质量保证策略等。2、编制软件项目的质量管理计划,包括确定项目的质量标准和要求,以及制定质量控制和质量保证策略等。测试用例表是质量控制过程中的关键工具,确保所有功能和场景都被验证,减少项目中的缺陷。1、理解项目质量管理的基本过程,包括质量计划、质量保证、质量控制和质量改进;明确质量管理活动中的角色和职责。

weixin_51996255的博客 1258

greendao介绍

一.ORM原理介绍     ORM实际上是,对象关系模型的程序方法,用于实现面向对象编程语言不通类型系统的数据之间的转换,也就是说,我们不需要要在java层关系关系数据库的具体实现,也不需要在关系数据库层,关心java对象的使用,从而提高编程的效率。 二.greendao3.0的使用     1.greendao3.0的引入工程,在project工程的build.gradle配置文件中添加g

tgyskl的专栏 733

Databricks Genie:语义编译器架构与企业级智能解析实践

语义层是现代数据平台实现自然语言查询的核心基础,其本质是将业务术语映射为可执行、可治理的数据契约。原理上依赖结构化元数据、值字典与数据血缘三支柱协同,通过分层AI代理(如Intent Parsing、Retriever、Verifier)实现意图识别→语义对齐→安全执行的闭环。技术价值在于降低SQL使用门槛的同时保障审计性、一致性和权限可控性,适用于销售运营、财务分析等一线业务场景。本文深入解析Databricks Genie作为典型语义编译器的落地逻辑,涵盖Unity Catalog知识注入、七层Agen

weixin_29053695的博客 337

GreenDao简单介绍及使用

大buide中,导入 classpath 'org.greenrobot:greendao-gradle-plugin:3.2.0' 配置数据库,注册Application /** * 用来配置数据库 */ public class MyApp extends Application { private static DaoSession mDaoSession; @Ove...

怪咖小白的博客 696

工商银行数据智能架构实践

工商银行大数据平台技术创新与实践摘要(149字): 工商银行构建了企业级大数据云基础设施,形成包含批量计算、流计算、联机分析等核心能力的技术架构。平台创新性地实现流批一体处理,将个人储蓄存款监测时效提升至分钟级;通过实时数仓技术将报送时效缩短至1-5分钟;融合内外部数据构建风控模型,债券违约预警准确率达100%。平台还支撑了"码上赢"精准营销和空间数据服务等创新应用,未来将向存算分离、实时数仓和云数智融合方向演进,持续提升数据价值转化能力。

银行信息系统应用架构详解 539

OpenCASCADE:Direct3D CSharp 示例

OpenCASCADE:Direct3D CSharp 示例OpenCASCADE:Direct3D CSharp 示例 OpenCASCADE:Direct3D CSharp 示例 此示例演示了如何在使用CSharp和Windows Presentation Foundation (WPF)编写的.Net应用程序中使用 OCCT 和 DirectX 库。 .Net、OCCT (C++) 和 DirectX 级别之间的连接由用 C++/CLI 编写的代理库OCCProxy和D3DProxy提供。代理库OCC

希望我的博客,能帮上你解决学习中工作中所遇到的问题 1824

GreenDao3.2.2 介绍和使用

GreenDao3.2.2 使用 一、介绍 GreenDAO是一个开源的安卓ORM框架,。它减轻开发人员处理低级数据库需求,同时节省开发时间。 SQLite是一个内嵌的关系数据库,编写SQL和解析查询结果是相当乏味和耗时的任务。通过将Java对象映射到数据库表(称为ORM,“对象/关系映射”),GreenDAO可以将它们从这些映射中释放出来,这样,您可以使用简单的面向对象的API来存储,更新,删除...

zhongzai_boke的博客 4344

软考高级信息系统项目管理师系列论文之:百篇软考高级信息系统项目管理师论文范文

软考高级信息系统项目管理师系列论文之:百篇软考高级信息系统项目管理师论文范文

zhengzaifeidelushang的博客 3579

GreenDao_2.介绍GreenDao

GreenDao 官方教程

byoooy的专栏 559

STM32F4 SPI FLASH(W25Q128)驱动详解(含DMA+完整读写擦除+低功耗)

本文实现了一款基于STM32 HAL库的SPI Flash驱动,以W25Q128为例,提供了完整的初始化、读写、擦除、ID读取等功能。驱动集成了DMA传输、超时保护、页对齐写入等特性,支持扇区擦除、整片擦除、页写入及跨页缓冲写入。代码结构清晰,易于移植到其他SPI Flash型号(如W25Q64、W25Q16等),适用于数据存储、固件升级、文件系统等嵌入式场景。

kevin1499的博客 96

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

GreenDao 使用介绍

地址 项目环境配置 混淆 简单使用介绍 其他说明地址 http://greenrobot.org/greendao/ https://github.com/greenrobot/greenDAO 项目环境配置在工程的根目录的build.gradle中配置buildscript { repositories { jcenter() mavenCentral()

IT_Transformers的专栏 900

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

greenDao的详细介绍

在主项目的grade中配置 apply plugin: 'org.greenrobot.greendao'main{ java.srcDirs = ['src/main/java','src/main/jave-gen'] }greendao{ schemaVersion 1 daoPackage'com.example.g

jun_0918的博客 317

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

GreenDao介绍

GreenDao介绍 greenDAO 是一个将对象映射到 SQLite 数据库中的轻量且快速的 ORM 解决方案 何为ORM? ORM(Object/Relation Mapping): 对象/关系映射 ORM 主要解决对象-关系的映射 ORM的思想:将关系数据库中表中的记录映射成为对象,以对象的形式展现,程序员可以把对数据库的操作转化为对对象的操作。 ORM的必要性 在写程序的时候...

weixin_30384031的博客 205

Android greenDao 数据库ORM框架介绍

最近在对开发项目的性能进行优化。由于项目里涉及了大量的缓存处理和数据库运用,需要对数据库进行频繁的读写、查询等操作。因此首先想到了对整个项目的数据库框架进行优化。    原先使用android本身内置的sqllite,也就是用的最基本的SQLiteOpenHelper方法,这种方法对自己来说比较方便易懂。但是在使用过程中感觉很繁琐,从建表到对表的增删改查等操作,如果表对象的属性很多,就需要使用大

h9911的专栏 687

GreenDao简明教程(基本介绍,Introduction)

这是一篇关于greenDao的简明使用教程。 基本介绍 如上图,greendao是一个在android上orm工具。他可以帮助我们把android上的sqlite操作简化成对象的操作。 如上图,你需要在你的主Android工程之外再建立一个generator project.这是一个纯java的项目。 在这个项目里你需要在classpat

技海拾贝 2360

Android GreenDao介绍和Generator生成表对象代码

转载请注明: http://blog.youkuaiyun.com/sinat_30276961/article/details/50052109 最近无意中发现了GreenDao,然后查看了一些资料后,发现这个数据库框架很适合用,于是乎,查看了官网的api,并自己写了一个小应用总结一下它的使用方法。 介绍按照国际惯例,在开篇,总要先介绍一下什么是GreenDao吧。首先需要说明的是GreenDao是基于

Shi_Liz的博客 6648

greenDao 介绍

greenDAO是一个针对Android的轻快速ORM解决方案,它将对象映射到SQLite数据库。http://greenrobot.org/greendao/ greenDAO is a light & fast ORM solution for Android that maps objects to SQLite databases.http://greenrobot.org/g...

weixin_34138377的博客 167

Android中的ORM介绍及GreenDao使用

ORM ,ORM开源库对比 ,GreenDAO使用

SKY_L的博客 437

GreenDAO 3介绍与应用

前言 当我看到需要在android工程下新建一个module-->java library的generator library的时候,便去翻阅了一下官方文档,此时发现出现了GreenDao 3,可以不用新建额外的module,而是在android工程中添加一个Gradle plugin,官方解释道:事实上,这个Gradle plugin内部也是使用原来的generator library. G

开发笔记 4390

GreenDao的简单使用及其介绍

老大让我使用GreenDao,我个水菜,摸索了半天,搞定了自己要建立的表。         首先说GreenDao吧!        【GreenDao介绍】         官网文档:greendao-orm.com/         GreenDao:是数据库ORM(Object Relation Mapping)框架,(ORM框架:ORMLite、greendao、ormndroi

alex 780

GreenDao3.x使用介绍

在本文中我只记录了我认为重要的, 旨在先创建一个简单的demo能把greendao的一些基础的功能用起来, 可能并不详细, 理解可能也有错误, 如果您想看详细而全面的介绍, 请移步官网, 如果您对本文有任何疑问或者建议, 请随时@我greendao官网: http://greenrobot.org/greendao 数据库升级: https://github.com/yuweiguocn/Gr

plq690816的博客 579
上一篇: MVP、基类的库
下一篇: Retrofit、Rxjava2、Ok应用拦截器 工具类
Melect
博客等级 码龄9年 10粉丝 46原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值