GreenDao 特性:
gethub事例:
https://github.com/greenrobot/greenDAO
是将对象映射到 SQLite 数据库中的轻量且快速的 ORM 解决方案
ORM (Object Relation Mapping - 对象关系映射)
Android studio版本2.3
流程:
1.添加依赖Library
build.gradle(project:News)文件
dependencies {
classpath
'org.greenrobot:greendao-gradle-plugin:3.2.1'
}
build.gradle(Module:app)
apply
plugin:
'org.greenrobot.greendao'
dependencies {
compile
'org.greenrobot:greendao:3.2.0'
}
2.添加版本控制
greendao {
schemaVersion 1;
targetGenDir 'src/main/java'
schemaVersion 1;
targetGenDir 'src/main/java'
}
3.新建实体类MyApplication extends Application
public class MyApplication
extends Application {
private DaoMaster daoMaster;
private static DaoSession daoSession;
@Override
public void onCreate() {
super.onCreate();
// 初始化 greendao
// 创建数据库 参数 1: 上下文对象 2: 数据库名称 .db 3: 游标工厂
DaoMaster.DevOpenHelper openHelper= new DaoMaster.DevOpenHelper(getApplicationContext(), "lizhen.db", null); // 需添加 .db 来创建数据库
// 实例化 daomaster
daoMaster= new DaoMaster(openHelper.getWritableDb());
daoSession = daoMaster.newSession();
}
// 增删改查 , 通过此方法实现 , 有参构造方法
public static DaoSession getsession(){
return daoSession;
}
}
private DaoMaster daoMaster;
private static DaoSession daoSession;
@Override
public void onCreate() {
super.onCreate();
// 初始化 greendao
// 创建数据库 参数 1: 上下文对象 2: 数据库名称 .db 3: 游标工厂
DaoMaster.DevOpenHelper openHelper= new DaoMaster.DevOpenHelper(getApplicationContext(), "lizhen.db", null); // 需添加 .db 来创建数据库
// 实例化 daomaster
daoMaster= new DaoMaster(openHelper.getWritableDb());
daoSession = daoMaster.newSession();
}
// 增删改查 , 通过此方法实现 , 有参构造方法
public static DaoSession getsession(){
return daoSession;
}
}
4.新建package bean包,用来存放数据处理的相关类
新建实体类,用来处理数据.
@Entity(nameInDb =
"user")
//
指定表单的名称
public class User {
@Id(autoincrement = true) // 给唯一标识 ID 自增长 ;
private Long id; //int 字符只有 11 位 ,Long 型较长
@Property(nameInDb = "name")
private String name;
@Property(nameInDb = "psd")
private String psd;
public class User {
@Id(autoincrement = true) // 给唯一标识 ID 自增长 ;
private Long id; //int 字符只有 11 位 ,Long 型较长
@Property(nameInDb = "name")
private String name;
@Property(nameInDb = "psd")
private String psd;
}
5.点击make poject按钮,(studio版本2.3)
进行自动生成 DaoMaster,Daoswssion和UserDao三个实体类.
6.在Fragment_two中进行调用
public class Fragment_two
extends Fragment{
@BindView(R.id. btn_insert)Button btn_insert;//butterKnife的使用,绑定控件
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view =inflater.inflate(R.layout. fragment_two,container, false);
ButterKnife. bind( this,view);//Butterknife初始化,Fragment绑定
return view;
}
@OnClick(R.id. btn_insert)//butterKnife设置点击事件
public void onclick(){
User user = new User( null, " 张三 ", "12356");
MyApplication. getsession().insert(user);//对getsession方法的调用
Toast. makeText(getContext(), " 成功插入数据 ", Toast. LENGTH_SHORT).show();
}
}
@BindView(R.id. btn_insert)Button btn_insert;//butterKnife的使用,绑定控件
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view =inflater.inflate(R.layout. fragment_two,container, false);
ButterKnife. bind( this,view);//Butterknife初始化,Fragment绑定
return view;
}
@OnClick(R.id. btn_insert)//butterKnife设置点击事件
public void onclick(){
User user = new User( null, " 张三 ", "12356");
MyApplication. getsession().insert(user);//对getsession方法的调用
Toast. makeText(getContext(), " 成功插入数据 ", Toast. LENGTH_SHORT).show();
}
}
7.运行程序,数据查看,插入正确(所用软件:Sqlite Developer).