android数据保存之greendao
2016-07-16 09:51
471 查看
有时我们的数据属于保存到数据库,对于Android应用和IOS应用,我们一般都会使用SQLite这个嵌入式的数据库作为我们保存数据的工具。由于我们直接操作数据库比较麻烦,而且管理起来也非常的麻烦,以前用ormlite,最近项目尝试用greendao来保存数据。
![](http://img.blog.csdn.net/20160716094217878?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
使用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'
![](http://img.blog.csdn.net/20160716094522082?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
在src/main下创建一个java-gen的包,用于生成我们的bean类文件
![](http://img.blog.csdn.net/20160716094604301?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
创建Dao的生成类文件YeehotGeneratorDao.java,用于生成上面说的几个类。这里我直接在项目里面创建了。
![](http://img.blog.csdn.net/20160716094653552?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](http://img.blog.csdn.net/20160716094901959?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](http://img.blog.csdn.net/20160716094938506?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
怎么用呢
使用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
- Android 6.0.1 Location Service 分析
- Android实现可浏览和搜索的联系人列表
- 使用AlertDialog创建单选列表对话框
- 做一个简单的Android图片缓存
- Android开发——GPS定位
- Android开发——GPS定位
- Android Studio改变应用名
- Android Studio权限管理
- 学习Android 需要什么 基础
- Android Studio 代码快捷键
- Android中surface,surfaceview,sufaceholder以及surface客户端的关系
- Android 广播大全 Intent Action 事件
- Android初级教程对大量数据的做分页处理理论知识
- Android初级教程对大量数据的做分页处理理论知识
- Android性能优化的一些理解
- Android学习笔记(一)
- Android 进程常驻(2)----细数利用android系统机制的保活手段
- Android service起动顺序如何控制?
- Android init.rc执行顺序