首先导依赖比较麻烦,在app 的build依赖最前端复制
apply plugin: 'org.greenrobot.greendao'
然后在android{}目录里粘贴,需要注意的是里面的需要粘贴自己的目录,然后加一个点带上想要的文件名字
greendao { schemaVersion 1 //版本 daoPackage 'com.example.administrator.greendao_demon.Dao' // 一般为app包名+生成文件的文件夹名 targetGenDir 'src/main/java' //生成文件路径 }
然后是正常依赖
//greendao compile 'org.greenrobot:greendao:3.1.0' //butterknife compile 'com.jakewharton:butterknife:8.5.1' annotationProcessor 'com.jakewharton:butterknife-compiler:8.5.1' //recyclerview implementation 'com.android.support:recyclerview-v7:27.1.1'
然后是在gradle目录下的build里面的dependencies目录下粘贴
classpath 'org.greenrobot:greendao-gradle-plugin:3.2.2'
那么以上就是所有的依赖,
然后就是正片我们要先自己定义一个需要的文件类User,只需要写注解和定义名词就好了其他的一会讲如何自动生成
@Entity
public class User {
@Id(autoincrement = true)
private Long id;
private String name;
private String age;
private String sex;
private String salary;
@Generated(hash = 1281958717)
public User(Long id, String name, String age, String sex, String salary) {
this.id = id;
this.name = name;
this.age = age;
this.sex = sex;
this.salary = salary;
}
@Generated(hash = 586692638)
public User() {
}
public Long getId() {
return this.id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return this.age;
}
public void setAge(String age) {
this.age = age;
}
public String getSex() {
return this.sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getSalary() {
return this.salary;
}
public void setSalary(String salary) {
this.salary = salary;
}
}
定义完需要的类之后点一下安卓死丢丢上面的小锤子就会自动生成Dao文件以及里面的三个类
然后是我的MainActivity
package com.example.administrator.greendao_demon.Main;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import com.bw.arp.greendemo.DaoMaster;
import com.bw.arp.greendemo.DaoSession;
import com.bw.arp.greendemo.UserDao;
import com.example.administrator.greendao_demon.R;
import java.util.List;
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;
public class MainActivity extends AppCompatActivity {
@BindView(R.id.et_name)
EditText mEtName;
@BindView(R.id.et_age)
EditText mEtAge;
@BindView(R.id.et_sex)
EditText mEtSex;
@BindView(R.id.et_salary)
EditText mEtSalary;
@BindView(R.id.et_id)
EditText mEtId;
@BindView(R.id.bt_insert)
Button mBtInsert;
@BindView(R.id.bt_select)
Button mBtSelect;
@BindView(R.id.bt_delete)
Button mBtDelete;
@BindView(R.id.bt_update)
Button mBtUpdate;
@BindView(R.id.rlv)
RecyclerView mRlv;
private UserDao userDao;
private String name;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ButterKnife.bind(this);
DaoMaster.DevOpenHelper devOpenHelper = new DaoMaster.DevOpenHelper(this, "pwk.db", null);
DaoMaster daoMaster = new DaoMaster(devOpenHelper.getWritableDatabase());
DaoSession daoSession = daoMaster.newSession();
userDao = daoSession.getUserDao();
}
@OnClick({R.id.et_name, R.id.et_age, R.id.et_sex, R.id.et_salary, R.id.et_id, R.id.bt_insert, R.id.bt_select, R.id.bt_delete, R.id.bt_update, R.id.rlv})
public void onClick(View v) {
switch (v.getId()) {
case R.id.bt_insert:
insert();
break;
case R.id.bt_select:
select();
break;
case R.id.bt_delete:
delete();
break;
case R.id.bt_update:
update();
break;
}
}
private void update() {
// List<User> user2 = userDao.queryBuilder()
// .where(UserDao.Properties.Name.eq("刘阳洲")).build().list();
// if (user2 == null){
// Toast.makeText(this, "用户不存在", Toast.LENGTH_SHORT).show();
// }else {
// for (int i = 0;i<user2.size();i++){
// user2.get(i).setName("二狗子");
// userDao.update(user2.get(i));
// }
// }
String id = mEtId.getText().toString().trim();
long ids = Long.parseLong(id);
String s = mEtName.getText().toString();
String age = mEtName.getText().toString();
String Salar = mEtSalary.getText().toString();
String sex = mEtSex.getText().toString();
User user = new User(ids,s,age,Salar,sex);
userDao.update(user);
Toast.makeText(this,"修改成功",Toast.LENGTH_SHORT).show();
select();
}
private void delete() {
String id = mEtId.getText().toString().trim();
userDao.queryBuilder().where(UserDao.Properties.Id.eq(id)).buildDelete().executeDeleteWithoutDetachingEntities();
Toast.makeText(this,"删除成功~",Toast.LENGTH_SHORT).show();
select();
}
private void select() {
List<User> users = userDao.loadAll();
MyAdapter adapter = new MyAdapter(users, this);
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);
mRlv.setLayoutManager(linearLayoutManager);
mRlv.setAdapter(adapter);
}
private void insert() {
name = mEtName.getText().toString().trim();
String age = mEtAge.getText().toString().trim();
String sex = mEtSex.getText().toString().trim();
String salary = mEtSalary.getText().toString().trim();
if (name.isEmpty()&&age.isEmpty()&&sex.isEmpty()&&salary.isEmpty()){
Toast.makeText(this,"请输入完整内容",Toast.LENGTH_SHORT).show();
}else {
User user = new User(null, name, age, sex, salary);
long insert = userDao.insert(user);
Toast.makeText(this, "添加成功", Toast.LENGTH_SHORT).show();
}
}
}
适配器MyAdapter
package com.example.administrator.greendao_demon.Main;
import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import com.example.administrator.greendao_demon.R;
import java.util.List;
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.MyHolder> {
private List<User> list;
private Context context;
public MyAdapter(List<User> list, Context context) {
this.list = list;
this.context = context;
}
@Override
public MyAdapter.MyHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = View.inflate(context, R.layout.rlv_item,null);
MyHolder holder = new MyHolder(view);
return holder;
}
@Override
public void onBindViewHolder(MyAdapter.MyHolder holder, int position) {
holder.tv_content.setText("ID:"+list.get(position).getId()+" 名字:"+list.get(position).getName()+" 年龄:"+list.get(position).getAge()+" 性别:"+list.get(position).getSex()+" 薪资:"+list.get(position).getSalary());
}
@Override
public int getItemCount() {
return list.size();
}
public class MyHolder extends RecyclerView.ViewHolder {
private final TextView tv_content;
public MyHolder(View itemView) {
super(itemView);
tv_content = itemView.findViewById(R.id.tv_content);
}
}
}