package ccc.ww.genndao;
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;
import java.util.List;
import ccc.ww.genndao.Bean.User;
import ccc.ww.genndao.gen.DaoMaster;
import ccc.ww.genndao.gen.DaoSession;
import ccc.ww.genndao.gen.UserDao;
public class MainActivity extends AppCompatActivity {
private Button btnAdd;
private EditText etId;
private EditText etName;
private Button btnDelete;
private Button btnQuery;
private TextView tvQuery;
private UserDao userDao;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
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);
initDbView();
btnAdd.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
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()<1){
Toast.makeText(MainActivity.this, "删除数据成功", Toast.LENGTH_SHORT).show();
etId.setText("");
etName.setText("");
}else{
Toast.makeText(MainActivity.this, "id为空", Toast.LENGTH_SHORT).show();
}
}
}
});
btnDelete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
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 v) {
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();
}
}
});
}
public void initDbView(){
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();
}
public boolean isNotEmpty(String s) {
if(s!=null && !s.equals("") || s.length()>0){
return true;
}else{
return false;
}
}
public boolean isEmpty(String s){
if(isNotEmpty(s)){
return false;
}else{
return true;
}
}
}
myApp:
package ccc.ww.genndao.App;
import android.app.Application;
import android.database.sqlite.SQLiteDatabase;
import ccc.ww.genndao.gen.DaoMaster;
import ccc.ww.genndao.gen.DaoSession;
public class MyApp extends Application {
private static MyApp mInstance;;
private DaoSession daoSession;
@Override
public void onCreate() {
super.onCreate();
mInstance=this;
setDb();
}
public static MyApp getmInstance(){
return mInstance;
}
private void setDb() {
DaoMaster.DevOpenHelper helper=new DaoMaster.DevOpenHelper(this,"bw.db", null);
SQLiteDatabase database=helper.getWritableDatabase();
DaoMaster daoMaster = new DaoMaster(database);
daoSession = daoMaster.newSession();
}
public DaoSession getDaoSessio(){
return daoSession;
}
}
user:
package ccc.ww.genndao.Bean;
import org.greenrobot.greendao.annotation.Entity;
import org.greenrobot.greendao.annotation.Id;
import org.greenrobot.greendao.annotation.Property;
import org.greenrobot.greendao.annotation.Generated;
@Entity
public class User {
@Id
private Long id;
@Property(nameInDb = "name")
private String name;
@Generated(hash = 873297011)
public User(Long id, String name) {
this.id = id;
this.name = name;
}
@Generated(hash = 586692638)
public User() {
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
main:
package ccc.ww.genndao;
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;
import java.util.List;
import ccc.ww.genndao.Bean.User;
import ccc.ww.genndao.gen.DaoMaster;
import ccc.ww.genndao.gen.DaoSession;
import ccc.ww.genndao.gen.UserDao;
public class MainActivity extends AppCompatActivity {
private Button btnAdd;
private EditText etId;
private EditText etName;
private Button btnDelete;
private Button btnQuery;
private TextView tvQuery;
private UserDao userDao;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
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);
initDbView();
btnAdd.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
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()<1){
Toast.makeText(MainActivity.this, "删除数据成功", Toast.LENGTH_SHORT).show();
etId.setText("");
etName.setText("");
}else{
Toast.makeText(MainActivity.this, "id为空", Toast.LENGTH_SHORT).show();
}
}
}
});
btnDelete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
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 v) {
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();
}
}
});
}
public void initDbView(){
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();
}
public boolean isNotEmpty(String s) {
if(s!=null && !s.equals("") || s.length()>0){
return true;
}else{
return false;
}
}
public boolean isEmpty(String s){
if(isNotEmpty(s)){
return false;
}else{
return true;
}
}
}
layout:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android:orientation="vertical"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" tools:context="ccc.ww.genndao.MainActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_margin="10dp"
android:text="greenDao lib test"
android:textColor="@android:color/black" />
<EditText
android:id="@+id/etId"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="请输入用户id"
android:inputType="number"
android:textSize="15sp" />
<EditText
android:id="@+id/etName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="请输入用户名"
android:textSize="15sp" />
<Button
android:id="@+id/btnAdd"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="新增" />
<Button
android:id="@+id/btnDelete"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="删除" />
<Button
android:id="@+id/btnQuery"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="查询" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_margin="10dp"
android:text="查询结果"
android:textColor="@android:color/black" />
<TextView
android:id="@+id/tvQuery"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_margin="10dp"
android:textColor="@android:color/black" />
</LinearLayout>