更多详细:https://blog.csdn.net/small_and_smallworld/article/details/73162327
1.在根目录下:
buildscript {
repositories {
google()
jcenter()
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.2.0'
classpath 'org.greenrobot:greendao-gradle-plugin:3.1.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
2.依赖:
compile 'org.greenrobot:greendao:3.1.1'
compile 'org.greenrobot:greendao-generator:3.1.0'
3. 第三步:添加配置
3.
apply plugin: 'org.greenrobot.greendao'
//写完这一步 才出来 4个包
greendao {
schemaVersion 1
daoPackage "com.bw.ymy.text1_greendao"
targetGenDir "src/main/java"
}
4.写一个user类
只需要写,
点击,自动生成
点击
package com.bw.ymy.text1_greendao;
import org.greenrobot.greendao.annotation.Entity;
import org.greenrobot.greendao.annotation.Id;
import org.greenrobot.greendao.annotation.Generated;
@Entity
public class User {
@Id
private long id;
private String name;
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
public long getId() {
return this.id;
}
public void setId(long id) {
this.id = id;
}
@Generated(hash = 1144922831)
public User(long id, String name) {
this.id = id;
this.name = name;
}
@Generated(hash = 586692638)
public User() {
}
}
4.主页面
package com.bw.ymy.text1_greendao;
import android.database.sqlite.SQLiteDatabase;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import org.greenrobot.greendao.query.QueryBuilder;
import java.util.ArrayList;
public class MainActivity extends AppCompatActivity {
//实例化
UserDao userDao;
private EditText etId;
private EditText etName;
private Button btnAdd;
private Button btnDelete;
private Button btnQuery;
private TextView tvQuery;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
initDbHelp();
/*新增一条数据*/
btnAdd.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String id = etId.getText().toString();
String name = etName.getText().toString();
if (isNotEmpty(id) && isNotEmpty(name)) {
QueryBuilder qb = userDao.queryBuilder();
ArrayList<User> list = (ArrayList<User>) qb.where(UserDao.Properties.Id.eq(id)).list();
if (list.size() > 0) {
Toast.makeText(MainActivity.this, "主键重复", Toast.LENGTH_SHORT).show();
} else {
userDao.insert(new User(Long.valueOf(id), name));
Toast.makeText(MainActivity.this, "插入数据成功", Toast.LENGTH_SHORT).show();
}
} else {
if (isEmpty(id) && isNotEmpty(name)) {
Toast.makeText(MainActivity.this, "id为空", Toast.LENGTH_SHORT).show();
}
if (isEmpty(name) && isNotEmpty(id)) {
Toast.makeText(MainActivity.this, "姓名为空", Toast.LENGTH_SHORT).show();
}
if (isEmpty(id) && isEmpty(name)) {
Toast.makeText(MainActivity.this, "请填写信息", Toast.LENGTH_SHORT).show();
}
}
etId.setText("");
etName.setText("");
}
});
/*删除指定数据*/
btnDelete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String id = etId.getText().toString();
if (isNotEmpty(id)) {
userDao.deleteByKey(Long.valueOf(id));
QueryBuilder qb = userDao.queryBuilder();
ArrayList<User> list = (ArrayList<User>) qb.where(UserDao.Properties.Id.eq(id)).list();
if (list.size() < 1) {
Toast.makeText(MainActivity.this, "删除数据成功", Toast.LENGTH_SHORT).show();
etId.setText("");
etName.setText("");
}
} else {
Toast.makeText(MainActivity.this, "id为空", Toast.LENGTH_SHORT).show();
}
}
});
/*查询数据*/
btnQuery.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String id = etId.getText().toString();
if (isNotEmpty(id)) {
QueryBuilder qb = userDao.queryBuilder();
ArrayList<User> list = (ArrayList<User>) qb.where(UserDao.Properties.Id.eq(id)).list();
if (list.size() > 0) {
String text = "";
for (User user : list) {
text = text + "\r\n" + user.getName();
}
tvQuery.setText(text);
} else {
tvQuery.setText("");
Toast.makeText(MainActivity.this, "不存在该数据", Toast.LENGTH_SHORT).show();
}
etId.setText("");
etName.setText("");
} else {
Toast.makeText(MainActivity.this, "id为空", Toast.LENGTH_SHORT).show();
}
}
});
}
/*初始化数据库相关*/
private void initDbHelp() {
DaoMaster.DevOpenHelper helper = new DaoMaster.DevOpenHelper(this, "recluse-db", null);
SQLiteDatabase db = helper.getWritableDatabase();
DaoMaster daoMaster = new DaoMaster(db);
DaoSession daoSession = daoMaster.newSession();
userDao = daoSession.getUserDao();
}
private void initView() {
etId = (EditText) findViewById(R.id.etId);
etName = (EditText) findViewById(R.id.etName);
btnAdd = (Button) findViewById(R.id.btnAdd);
btnDelete = (Button) findViewById(R.id.btnDelete);
btnQuery = (Button) findViewById(R.id.btnQuery);
tvQuery = (TextView) findViewById(R.id.tvQuery);
}
private boolean isNotEmpty(String s) {
if (s != null && !s.equals("") || s.length() > 0) {
return true;
} else {
return false;
}
}
private boolean isEmpty(String s) {
if (isNotEmpty(s)) {
return false;
} else {
return true;
}
}
}
效果: