litepal框架极大大简化了安卓对数据库的操作,首先我们从Litepal的集成开始学习这个开源框架。
集成方式分三步走:
step1:
在项目的gradle添加三方依赖包
implementation 'org.litepal.android:java:3.0.0'
step2:
在项目与java的同级目录下创建assets文件夹,在文件下下新建assets.xml文件
<?xml version="1.0" encoding="utf-8"?>
<litepal>
<dbname value ="litepal"/>//数据库名
<version value ="3"/>//数据库版本
<list>
<mapping class="com.example.studentinfomanager.Student"/>//这里创建一个student表
</list>
</litepal>
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<Student> 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操作数据库就已经完成了。
2160

被折叠的 条评论
为什么被折叠?



