介绍什么的我就不多说了。直接开始
首先打开自己的
在这里面需要进行配置
apply plugin: 'org.greenrobot.greendao'
dependencies {
implementation 'org.greenrobot:greendao:3.2.2'
}
greendao {
schemaVersion 1//数据库版本号
daoPackage 'com.demo.ggy.Dao'//设置DaoMaster、DaoSession、Dao包名,,这里设置的是
targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录
//targetGenDirTest:设置生成单元测试目录
//generateTests:设置自动生成单元测试用例
}
然后在打开这个配置这些
dependencies {
classpath 'org.greenrobot:greendao-gradle-plugin:3.2.1'
}
repositories {
mavenCentral()
}
配置完之后要首先配置好Bean类的东西
注解千万不要丢
@Entity
public class User {
@Id(autoincrement = true)
private Long id;
private String name; //数据库里的添加的名字
private int age; //数据库里添加的年龄
//里面的属性可以随意定义
}
注解的意思
@Id:主键 Long 型,可以通过@Id(autoincrement = true)设置自增长
然后Ctrl+F9(Make Project)
系统会自动生成你在第一次配置的greendao里的目录下的三个文件
这三个不用管
然后需要在App里面写配置数据库,
也可以在本类里面配置,但是在Application里面配置规范
配置完之后,就可以打代码了。。。
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private Button add;
private Button delete;
private Button update;
private Button check;
private EditText name;
private EditText age;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
}
private void initView() {
name = findViewById(R.id.name);
age = findViewById(R.id.age);
add = findViewById(R.id.add);
delete = findViewById(R.id.delete);
update = findViewById(R.id.update);
check = findViewById(R.id.check);
add.setOnClickListener(this);
delete.setOnClickListener(this);
update.setOnClickListener(this);
check.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.add:
insertData();
break;
case R.id.delete:
deleteData();
break;
case R.id.update:
updateData();
break;
case R.id.check:
quertData();
break;
}
}
//查询
private void quertData() {
List<User> users = App.getDaoSeesion().getUserDao().loadAll();
if(users==null || users.isEmpty()){
Toast.makeText(this, "数据库没有信息", Toast.LENGTH_SHORT).show();
return;
}
for (int x = 0; x <users.size() ; x++) {
User user1 = users.get(x);
Log.e("数据库信息",user1.getName()+"-----"+user1.getAge());
}
}
//修改
private void updateData() {
//修改是根据输入的名字去修改年龄
String nameUpdate = name.getText().toString().trim();
String ageUpdate = age.getText().toString().trim();
if(nameUpdate.equals("") || ageUpdate.equals("")){
Toast.makeText(this, "更改的数据不能为空", Toast.LENGTH_SHORT).show();
return;
}
int age = Integer.parseInt(ageUpdate);
UserDao userDao = App.getDaoSeesion().getUserDao();
List<User> users = userDao.loadAll();
if (users == null || users.isEmpty()) {
Toast.makeText(this, "数据库为空", Toast.LENGTH_SHORT).show();
return;
}
for (int x = 0; x <users.size() ; x++) {
User user = users.get(x);
if(user.getName().equals(nameUpdate)){
user.setAge(age);
App.getDaoSeesion().getUserDao().update(user);
Toast.makeText(this, "修改成功", Toast.LENGTH_SHORT).show();
return;
}
}
Toast.makeText(this, "数据库没有该名字", Toast.LENGTH_SHORT).show();
}
//删除数据库
private void deleteData() {
UserDao userDao = App.getDaoSeesion().getUserDao();
List<User> list = userDao.queryBuilder().list();
if (list == null || list.isEmpty()) {
Toast.makeText(this, "数据库为空", Toast.LENGTH_SHORT).show();
return;
}
for (int x = 0; x <list.size() ; x++) {
User user1 = list.get(x);
String userName = name.getText().toString().trim();
if(userName.equals("")){
Toast.makeText(this, "请输入要删除的名字", Toast.LENGTH_SHORT).show();
return;
}
if(user1.getName().equals(userName)){
userDao.delete(user1);
Toast.makeText(this, "删除成功", Toast.LENGTH_SHORT).show();
return;
}
}
Toast.makeText(this, "没有该名字", Toast.LENGTH_SHORT).show();
}
//添加
private void insertData() {
String nameString = name.getText().toString().trim();
String ageString = age.getText().toString().trim();
if(nameString.equals("") || ageString==null){
Toast.makeText(this, "不能为空", Toast.LENGTH_SHORT).show();
return;
}
List<User> users = App.getDaoSeesion().getUserDao().loadAll();
for (int x = 0; x <users.size() ; x++) {
User user1 = users.get(x);
if(user1.getName().equals(nameString)){
Toast.makeText(this, "名称已存在", Toast.LENGTH_SHORT).show();
return;
}
}
int ageInt = Integer.parseInt(ageString);
User user = new User();
user.setName(nameString);
user.setAge(ageInt);
App.getDaoSeesion().getUserDao().insert(user);
Toast.makeText(this, "插入成功", Toast.LENGTH_SHORT).show();
}
}
里面涉及到的方法如下
insert(User entity):插入一条记录
deleteBykey(Long key) :根据主键删除一条记录。
delete(User entity) :根据实体类删除一条记录,一般结合查询方法,查询出一条记录之后删除。
deleteAll(): 删除所有记录。
update(User entity):更新一条记录
loadAll():查询所有记录
load(Long key):根据主键查询一条记录
queryBuilder().list():返回:List
queryBuilder().where(UserDao.Properties.Name.eq("")).list():返回:List
queryRaw(String where,String selectionArg):返回:List
我的布局如下