Android之数据库Greedao的使用
16lz
2021-01-26
我相信,在平时的开发过程中,大家一定会或多或少地接触到数据库。然而在使用它时,我们往往需要做许多额外的工作,像编写 SQL 语句与解析查询结果等。所以,适用于 Android 的greedao数据库也就孕育而生,简单的讲,greenDAO 是一个将对象映射到 SQLite 数据库中的轻量且快速的解决方案。
GREENDAO 设计的好处
-
一个精简的库
-
性能最大化
-
内存开销最小化
-
易于使用的 APIs
-
对 Android 进行高度优化
如何开始
现在我们就来讲一下greedao的简单使用吧!!! 首先,和往常一样导入依赖包,进行配置greedao数据库compile 'org.greenrobot:greendao:3.0.1'compile 'org.greenrobot:greendao-generator:3.0.0'
build.gradle配置 apply plugin: 'org.greenrobot.greendao'buildscript { repositories { mavenCentral() } dependencies { classpath 'org.greenrobot:greendao-gradle-plugin:3.0.0' }}greendao { schemaVersion 1 daoPackage 'com.wyk.greendaodemo.greendao.gen' targetGenDir 'src/main/java'}
需要实现一个Bean对象进行保存数据 import org.greenrobot.greendao.annotation.Entity;import org.greenrobot.greendao.annotation.Id;import org.greenrobot.greendao.annotation.Transient;import org.greenrobot.greendao.annotation.Generated;@Entity //指定为数据库类的对象public class User { @Id //此ID必须有且为long类型 private Long id; private String name; @Transient //这个注解意思为这个属性不会保存到数据库为属性 在数据库中不对这个属性进行操作 private int tempUsageCount; // not persisted
public String getName() { return this.name; //下面的方法自己无需定义 点击studio上方Build->Make Project会自动生成文件 } public void setName(String name) { this.name = name; } public Long getId() { return this.id; } public void setId(Long id) { this.id = id; } @Generated(hash = 873297011) public User(Long id, String name) { this.id = id; this.name = name; } @Generated(hash = 586692638) public User() { } @Override public String toString() { return "User{" + "id=" + id + ", name='" + name + '\'' + ", tempUsageCount=" + tempUsageCount + '}'; }}
自己生成的三个核心类 基本上这样的配置就算完成了,简单的写一下增删改查的 创建一个类继承Application初始化数据库:
import android.app.Application;import com.wyk.greendaodemo.greendao.gen.DaoMaster;import com.wyk.greendaodemo.greendao.gen.UserDao;/** * Created by 15218 on 2017/11/7. */public class App extends Application { private UserDao userDao; //暴露给外部使用此数据库 public UserDao getUserDao() { return userDao; } @Override public void onCreate() { super.onCreate(); //对数据库进行初始化 liu.db 数据库的名字 DaoMaster.DevOpenHelper devOpenHelper = new DaoMaster.DevOpenHelper(this,"liu.db"); DaoMaster daoMaster = new DaoMaster(devOpenHelper.getWritableDb()); userDao = daoMaster.newSession().getUserDao(); }}
这样我们的逻辑就好写了吧,在我们的Mantivity里边得到数据库,进行对数据库的操作 import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.widget.Toast;import com.wyk.greendaodemo.greendao.gen.UserDao;import org.greenrobot.greendao.query.QueryBuilder;import java.util.ArrayList;import java.util.List;
public class MainActivity extends AppCompatActivity { private UserDao userDao; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); App app = (App) getApplication();//得到数据库使用 userDao = app.getUserDao(); } public void add(View v){//添加单条数据 User u = new User(null,"刘备"); userDao.insert(u); } public void addAll(View v){//批量添加 userDao.insertInTx(new User[]{new User(null,"达摩"), new User(null,"赵云"), new User(null,"亚瑟") ,new User(null,"吕布")}); } public void delete(View v){//删除单条 userDao.deleteByKey((long) 1); } public void deleteAll(View v){ //批量删除 userDao.deleteAll(); } public void updata(View v){ //修改单条 User u = new User(Long.valueOf(1),"孙尚香"); userDao.update(u); } public void updataAll(View v){ //批量修改 userDao.updateInTx(new User[]{ new User(Long.valueOf(2),"孙尚香1"), new User(Long.valueOf(3),"孙尚香2") ,new User(Long.valueOf(4),"孙尚香3") }); } public void select(View v){ //条件查询 QueryBuilder userQueryBuilder = userDao.queryBuilder(); List list = userQueryBuilder.build().list(); List l = new ArrayList<>(); for (int i=0;i users = userDao.loadAll(); //吐司事件 Toast.makeText(MainActivity.this,users.toString(),Toast.LENGTH_SHORT).show(); }}
Mantivity.xml文件: <?xml version="1.0" encoding="utf-8"?>
效果: Sqlite中显示的
以上就是greedao数据库最简单的使用操作啦,后续会进一步的研究一些注解和一些关于数据库关联的操作。
推荐文章:Greedao的注解 http://blog.csdn.net/bugproof/article/details/52074959
Greedao的关联 http://blog.csdn.net/u010687392/article/details/48496299
Greedao的操作 http://blog.csdn.net/njweiyukun/article/details/51893092
更多相关文章
- Android(安卓)监听短信(同时监听广播和数据库)
- 【开发框架】GreenDao数据库框架的搭建和使用
- Android来电和短信操作
- android 蓝牙隐藏对话框 后台配对
- Android---Android下嵌入式数据库SqlLite使用方法
- GreenDAO—Android(安卓)ORM框架(一)
- android NoticificationManager状态栏操作
- android SQLite数据库的增删改查以及事务的单元测试
- Android(安卓)greedao数据库简单的升级