GreenDao详细步骤

介绍什么的我就不多说了。直接开始
首先打开自己的在这里插入图片描述
在这里面需要进行配置

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
我的布局如下
在这里插入图片描述

发布了16 篇原创文章 · 获赞 5 · 访问量 6563

猜你喜欢

转载自blog.csdn.net/ggy_yao/article/details/84572290