有时我们的数据属于保存到数据库,对于Android应用和IOS应用,我们一般都会使用SQLite这个嵌入式的数据库作为我们保存数据的工具。由于我们直接操作数据库比较麻烦,而且管理起来也非常的麻烦,以前用ormlite,最近项目尝试用greendao来保存数据。



使用gradle导入greendao包和greendao-generator包并配置我们的路径
其中greendao用于我们操作数据库的类。而greendao-generator是用来产生我们的的数据库的数据类。包含了Bean、DAO、DaoMaster、DaoSession 。
我们在项目配置文件中添加如下代码:
compile 'org.greenrobot:greendao:3.0.1'
compile 'org.greenrobot:greendao-generator:3.0.0'
在src/main下创建一个java-gen的包,用于生成我们的bean类文件


创建Dao的生成类文件YeehotGeneratorDao.java,用于生成上面说的几个类。这里我直接在项目里面创建了。


<span style="font-size:14px;">public class YeehotGeneratorDao {
public static void main(String[] args) throws Exception {
//DB_VESION,BEAN 版本号与 包路径
Schema schema = new Schema(1, "com.yeehot.greendao");
addTable(schema);
//第二个参数是我们刚刚的包db的路径。
new DaoGenerator().generateAll(schema, "/Users/yeehot/Desktop/a/GreendaoInfo/app/src/main/java-gen");
}
private static void addTable(Schema schema) {
// 创建一个实体,其实就是表名
Entity User = schema.addEntity("User");
//添加表的属性。
User.addIdProperty();
//添加字符串的属性
User.addStringProperty("email").notNull();
User.addStringProperty("passwd");
User.addStringProperty("userid");
}
}</span>

运行一下YeehotGeneratorDao





怎么用呢
<span style="font-size:14px;">package com.yeehot.greendaoinfo;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import com.yeehot.greendaoinfo.db.DaoMaster;
import com.yeehot.greendaoinfo.db.DaoSession;
import com.yeehot.greendaoinfo.db.User;
import com.yeehot.greendaoinfo.db.UserDao;
import org.greenrobot.greendao.generator.Query;
import org.greenrobot.greendao.query.QueryBuilder;
import java.text.DateFormat;
import java.util.Date;
import java.util.List;
public class MainActivity extends AppCompatActivity {
private SQLiteDatabase db;
private DaoMaster daoMaster;
private DaoSession daoSession;
private Cursor cursor;
private EditText email;
private Button add;
private Button search;
private Button delete;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
email= (EditText) findViewById(R.id.email);
add= (Button) findViewById(R.id.add);
search= (Button) findViewById(R.id.search);
delete= (Button) findViewById(R.id.delete);
CreateDB();
add.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
addEmail();
}
});
search.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
FindEmail();
}
});
delete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
DeleteEmail();
}
});
}
private void CreateDB() {
// DevOpenHelper
DaoMaster.DevOpenHelper helper = new DaoMaster.DevOpenHelper(this, "yeehotdb", null);
db = helper.getWritableDatabase();
daoMaster = new DaoMaster(db);
daoSession = daoMaster.newSession();
}
private void addEmail() {
String emailinfo = email.getText().toString();
// 插入操作,简单到只要你创建一个 Java 对象
User note = new User(null,emailinfo,"1234","0001");
daoSession.getUserDao().insert(note);
}
private void FindEmail() {
Query query = daoSession.getUserDao().queryBuilder()
.where(UserDao.Properties.Email.eq(email.getText().toString()))
.orderAsc(UserDao.Properties.Id)
.build();
List list=query.list();
QueryBuilder.LOG_SQL = true;
QueryBuilder.LOG_VALUES = true;
}
private void DeleteEmail() {
// daoSession.getUserDao().deleteByKey(id);
daoSession.getUserDao().deleteAll();
}
}</span><strong style="font-size: 16px;">

</strong>






android数据保存之greendao的更多相关文章

  1. Android数据存储之GreenDao 3.0 详解

    前言: 今天一大早收到GreenDao 3.0 正式发布的消息,自从2014年接触GreenDao至今,项目中一直使用GreenDao框架处理数据库操作,本人使用数据库路线 Sqlite----> ...

  2. Android数据保存之文件保存

    前言: 上一篇文章写了在Android中利用SharedPreferences保存数据,SharedPreferences在保存数据的时候主要是保存一些应用程序的设置信息或者少量的用户信息,并且是以k ...

  3. Android数据保存之SharedPreference

    前言: 程序中处理的大部分问题都与数据有关,读取数据显示在UI上,读取的数据可以是本地的,也可以是网络的.保存用户数据到存储空间,可以是本地的数据库,文件等,也可以是保存到网络服务器.总之大部分的程序 ...

  4. android数据保存

    永久保存数据的方法:1.Shared Preferences 以键值对的形式存储基本数据类型( booleans, floats, ints, longs, and strings),存储的数据在限制 ...

  5. MTK Android Android数据保存到系统数据库

    如果有留意Android中系统设置Settings里面的源码,你会发现代码中频繁用到了Settings.System操作,该类通过键值对的形式,将一些特定的值以全局的模式保存到Setting的数据库中 ...

  6. Android中的数据保存

    形式 Android的数据保存分为3种形式:file, SharedPreference, Database 文件 主要思想就是通过Context类中提供的openFileInput和openFile ...

  7. Android少量数据保存之SharedPreferences接口实例

    SharedPreferences数据保存主要是通过键值的方式存储在xml文件中 xml文件在data/此程序的包名/XX.xml 格式 <?xml version='1.0' encoding ...

  8. Android数据存储(1)少量数据保存之SharedPreferences接口实例

    SharedPreferences数据保存主要是通过键值的方式存储在xml文件中 xml文件在data/此程序的包名/XX.xml 格式 <?xml version='1.0' encoding ...

  9. android之保存偏好设置信息到shareSharedPreferences,轻量级的保存数据的方法

    android之保存偏好设置信息到shareSharedPreferences,轻量级的保存数据的方法   SharedPreferences保存数据到xml文件 有时候要保存activity的某些状 ...

随机推荐

  1. lglob-lua 静态检查脚本

    ./lglob ~/ngx/lualib/mvc/*.lua 2>&1 | grep ' set '

  2. Java异常处理-----程序中的异常处理.启蒙

    1.当除数是非0,除法运算完毕,程序继续执行. 2.当除数是0,程序发生异常,并且除法运算之后的代码停止运行.因为程序发生异常需要进行处理. class Demo { public static vo ...

  3. 《Shazam It! Music Recognition Algorithms, Fingerprinting, and Processing》译文

    最近看到一篇老外写的博客,简单介绍了shazam的工作原理.图非常好,所以就把它翻译成中文,希望对搞听歌识曲的人有帮助. 你可能遇到这样的场景:在酒吧或者餐厅听到你非常熟悉的歌,也许你曾经听过无数次, ...

  4. 【Unity Shader】2D动态云彩

    写在前面 赶在年前写一篇文章.之前翻看2015年的SIGGRAPH Course(关于渲染的可以去selfshadow的博客里找到,很全)的时候看到了关于体积云的渲染.这个课程讲述了开发者为游戏< ...

  5. x264源代码简单分析:宏块编码(Encode)部分

    ===================================================== H.264源代码分析文章列表: [编码 - x264] x264源代码简单分析:概述 x26 ...

  6. Android之Animation动画各属性的参数意思(二)

    现在就来讲讲Animation里这四个标签的属性. 一.这四个标签alpha.scale.translate.rotate共有的属性为: android:duration        动画持续时间, ...

  7. Spark技术内幕:Master的故障恢复

    Spark技术内幕:Master基于ZooKeeper的High Availability(HA)源码实现  详细阐述了使用ZK实现的Master的HA,那么Master是如何快速故障恢复的呢? 处于 ...

  8. 剑指Offer——二叉树

    剑指Offer--二叉树 前言 数据结构通常是编程面试中考察的重点.在参加面试之前,应聘者需要熟练掌握链表.树.栈.队列和哈希表等数据结构,以及它们的操作.本片博文主要讲解二叉树操作的相关知识,主要包 ...

  9. Socket实现聊天客户端

    今天在极客学院上看到了一个关于Socket的视频讲解,感觉还不错,就写了份代码,拿来分享一下. Socket使用方法 关于Socket的使用,我们首先要弄清楚的是,在服务器端还是在客户端使用.因为这的 ...

  10. 06 Activity 4中启动模式

    前言:改变Activity的启动模式可以清单文件AndroidManifest的Activity标签添加属性android:launchMode="standard"中修改如下图: ...