Android GreenDao 3.0使用实例讲解
来源:互联网 发布:java项目开发难点 编辑:程序博客网 时间:2024/06/08 15:27
GreenDao简介
greenDAO是一个对象关系映射(ORM)的框架,能够提供一个接口通过操作对象的方式去操作关系型数据库,它能够让你操作数据库时更简单、更方便。
如何使用GreenDao 3.0
(1).新建Android项目工程,在工程目录的build.gradle中添加
dependencies { classpath ‘org.greenrobot:greendao-gradle-plugin:3.1.0’}
(2).在module的build.gradle文件中添加依赖
apply plugin: ‘org.greenrobot.greendao’
dependencies {compile ‘org.greenrobot:greendao:3.2.0’}
在android{}中添加
greendao
{
schemaVersion 1
targetGenDir ‘src/main/java/’
}
其中schmaVersion 表示数据库的版本,targetGenDir 表示编译后DaoMaster 、DaoSession、Dao文件的生成目录。
创建一个实体类:
@Entitypublic class Cars{ //注意:通过@Property()这个注解定义我外部数据库的字段名才能解决 //否则在插入数据的时候会报相关的错误。 @Property(nameInDb = "id") @Id(autoincrement = true) private long id; @Property private String car_name; @Property private String car_price; @Property private String car_factory;}
编译后自动生成三个类文件,如图所示:
创建一个数据库管理类,用于数据的插入,更新,删除,查询。代码如下:
import android.content.Context;import android.database.sqlite.SQLiteDatabase;import org.greenrobot.greendao.query.QueryBuilder;import java.util.List;/** 1. 数据库管理类 2. Created by admin on 2017/6/24. */public class DBManager{ private static final String DB_NAME = "dao_db"; private static DBManager instance; private DaoMaster.DevOpenHelper openHelper; private Context mContext; public DBManager(Context context) { this.mContext = context; openHelper = new DaoMaster.DevOpenHelper(context, DB_NAME, null); } public static DBManager getInstance(Context context) { if (instance == null) { synchronized (DBManager.class) { if (instance == null) { instance = new DBManager(context); } } } return instance; } /** * 插入一条数据 * @param car */ public void insertUser(Cars car) { DaoMaster daoMaster = new DaoMaster(getWritableDatabase()); DaoSession daoSession = daoMaster.newSession(); CarsDao carsDao = daoSession.getCarsDao(); carsDao.insert(car); } /** * 插入用户集合 * * @param cars */ public void insertUserList(List<Cars> cars) { if (cars == null || cars.isEmpty()) { return; } DaoMaster daoMaster = new DaoMaster(getWritableDatabase()); DaoSession daoSession = daoMaster.newSession(); CarsDao carsDao = daoSession.getCarsDao(); carsDao.insertInTx(cars); } public void update() { List<Cars> carList = query(); for (Cars car : carList) { if (car.getId() == 3) { car.setCar_price(88888888 +""); updates(car); } } } public void updates(Cars cars) { DaoMaster daoMaster = new DaoMaster(getWritableDatabase()); DaoSession daoSession = daoMaster.newSession(); CarsDao carsDao = daoSession.getCarsDao(); carsDao.update(cars); } public void delete() { List<Cars> userList = query(); for (Cars car : userList) { if (car.getId() == 4) { delete(car); } } } public void delete(Cars cars) { DaoMaster daoMaster = new DaoMaster(getWritableDatabase()); DaoSession daoSession = daoMaster.newSession(); CarsDao carsDao = daoSession.getCarsDao(); carsDao.delete(cars); } public List<Cars> query() { DaoMaster daoMaster = new DaoMaster(getWritableDatabase()); DaoSession daoSession = daoMaster.newSession(); CarsDao carsDao = daoSession.getCarsDao(); QueryBuilder<Cars> qb = carsDao.queryBuilder(); List<Cars> list = qb.list(); return list; } /** * 获取可读数据库 */ public SQLiteDatabase getReadableDatabase() { if (openHelper == null) { openHelper = new DaoMaster.DevOpenHelper(mContext, "dao_db", null); } SQLiteDatabase db = openHelper.getReadableDatabase(); return db; } /** * 获取可写数据库 */ public SQLiteDatabase getWritableDatabase() { if (openHelper == null) { openHelper = new DaoMaster.DevOpenHelper(mContext, "dao_db", null); } SQLiteDatabase db = openHelper.getWritableDatabase(); return db; }}
*相关的测试类:*
import android.app.Activity;import android.os.Bundle;import android.view.View;import android.widget.ListView;import java.util.ArrayList;import java.util.List;public class MainActivity extends Activity{ private ListView listView; DBManager dbManager; private List<Cars> cars = new ArrayList<>(); private MyAdapter myAdapter; private com.qihancloud.greendaotest.DaoMaster.DevOpenHelper openHelper; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); listView = (ListView) findViewById(R.id.list); dbManager = new DBManager(MainActivity.this); } public void insert(View view) { cars.clear(); for (int i = 0; i < 10; i++) { Cars user = new Cars(); user.setId(i); user.setCar_name("飞车:" + i); user.setCar_price("100000" + i); user.setCar_factory("第" + i + "厂"); cars.add(user); } DBManager.getInstance(MainActivity.this).insertUserList(cars); } public void update(View view) { DBManager.getInstance(MainActivity.this).update(); } public void delete(View view) { DBManager.getInstance(MainActivity.this).delete(); } public void query(View view) { cars = DBManager.getInstance(MainActivity.this).query(); myAdapter = new MyAdapter(MainActivity.this, cars); listView.setAdapter(myAdapter); }}
相关的布局文件就不贴代码了,喜欢的朋友欢迎交流学习。
阅读全文
0 0
- Android GreenDao 3.0使用实例讲解
- GreenDao 3.2版本入门 以及实例讲解
- ANDROID GreenDao 使用例子 Android GreenDAO Simple
- Android Studio使用Greendao 3.0记录
- Android框架之Greendao 3.0的使用
- android greenDao使用
- Android studio使用greenDao
- Android GreenDao使用详解
- Android greenDAO 使用
- android 使用GreenDao
- Android 数据库 GreenDao使用
- Android GreenDao使用
- Android GreenDao的使用
- Android GreenDao基本使用
- Android GreenDao基本使用
- Android:GreenDao的使用
- Android入门教程 Fragment使用教程【实例讲解】
- GreenDAO 3.0 初次使用
- Mybatis中的update动态SQL语句
- redis编译安装
- config.js配置页面中的样式和图片路径
- Java 中 【this】关键字的用法
- 42 linux内核里的输入子系统分析
- Android GreenDao 3.0使用实例讲解
- android.mk 的理解和使用
- 携程是如何做React Native优化的
- C语言二级指针的三种模型
- 安装centos后需要安装的package
- JDBC基础入门
- 数据库导出表结构
- SpringBoot运行NoSuchMethodError
- Hello Kotlin(一)初次见面