Litepal入门实战

litepal框架极大大简化了安卓对数据库的操作,首先我们从Litepal的集成开始学习这个开源框架。

集成方式分三步走:

step1:

在项目的gradle添加三方依赖包

implementation 'org.litepal.android:java:3.0.0'

step2:

在项目与java的同级目录下创建assets文件夹,在文件下下新建assets.xml文件



    //数据库名
    //数据库版本
    
        //这里创建一个student表
    

step3:初始化界面调用getDatabase方法,数据库就创建完成了

 LitePal.getDatabase();

ok,到这里Litepal简单的集成就完成了,soeasy。

Litepal的CRUD实战

1.增加用户,通过save保存

 case R.id.add:
               //获取输入框的属性
                String stuName = name.getText().toString().trim();
                String stuAge = age.getText().toString().trim();
                String stuAddress = address.getText().toString().trim();
                String stuHobby = hobby.getText().toString().trim();
                //姓名,年龄,地址不能为空
                if (TextUtils.isEmpty(stuName) && TextUtils.isEmpty(stuAge) && TextUtils.isEmpty(stuAddress) && TextUtils.isEmpty(stuHobby)) {
                    Toast.makeText(MainActivity.this, "输入不能为空", Toast.LENGTH_SHORT).show();
                    return;
                } else {
                    Student student = new Student();
                    student.setName(stuName);
                    student.setAge(stuAge);
                    student.setAddress(stuAddress);
                    student.setHobby(stuHobby);
                    //保存到数据库
                    student.save();
                    getData();
                }
                break;

2.通过查询数据库显示在列表上

 //查询显示数据
    private void getData() {
        //清空上次list集合数据,防止数据重复增加
        studentList.clear();
        List list = LitePal.findAll(Student.class);
        for (Student stu : list) {
            Student student2 = new Student();
            student2.setName(stu.getName());
            student2.setAge(stu.getAge());
            student2.setAddress(stu.getAddress());
            student2.setHobby(stu.getHobby());
            studentList.add(student2);
        }
        LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);
        recyclerView.setLayoutManager(linearLayoutManager);
        studentAdapter.openLoadAnimation(Animation.ZORDER_BOTTOM);
        recyclerView.setAdapter(studentAdapter);
        studentAdapter.notifyDataSetChanged();
    }

效果视频:

litepal增加用户操作


2.Litepal删除列表项数据

  popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
                    @Override
                    public boolean onMenuItemClick(MenuItem item) {
                        switch (item.getItemId()) {
                            case R.id.menu_delete:
                                //拿到集合中要删除的对象
                                final Student student = studentList.get(position);
                                //数据库删除对应条目数据
                                LitePal.deleteAll(Student.class, "name =?", student.getName());
                                //集合中删除选中的条目数据
                                studentList.remove(student);
                                studentAdapter.notifyDataSetChanged();
                                break;

效果视频:

Litepal删除列表数据


3.Litepal修改列表项数据

   case R.id.menu_update:
                         final Student selectStu = studentList.get(position);
                         //设置点击修改项显示列表数据
                         final String select_name = selectStu.getName();
                         final String select_age = selectStu.getAge();
                         final String select_address = selectStu.getAddress();
                         final String select_hobby = selectStu.getHobby();
                         name.setText(select_name);
                         age.setText(select_age);
                         address.setText(select_address);
                         hobby.setText(select_hobby);
                         //点击修改按钮,修改条目数据
     update.setOnClickListener(new View.OnClickListener() {
                    @Override
     public void onClick(View v) {
                                        
     selectStu.setName(name.getText().toString().trim());
                                        selectStu.setAge(age.getText().toString().trim());
                                        
     selectStu.setAddress(address.getText().toString().trim());
                                        
     selectStu.setHobby(hobby.getText().toString().trim());
     //修改所选列表数据
     selectStu.updateAll("name =?", select_name);
     //刷新修改列表数据(存在头布局加1)
     studentAdapter.notifyItemChanged(position + 1);
     }
        });
 break;

效果视频:

Litepal修改列表数据


到这里建的Litepal操作数据库就已经完成了。

你可能感兴趣的:(Litepal入门实战)