Android LitePal的简单使用
Android 简单 使用
2023-09-11 14:15:13 时间
前言
为了丰富这个对于Android SQLite的使用,特别写了这篇文章,也算是做一个笔记吧。
效果图
正文
LitePal是Android中比较轻便的开源数据库框架,是郭霖大神写的,本文只做最简单的使用。
① 创建项目
然后是导入一些依赖库,其中包括LitePal,还有一些是为了方便展示数据的。
② 配置项目
在app下的build.gradle中添加配置
compileOptions {//指定使用的JDK1.8
sourceCompatibility = 1.8
targetCompatibility = 1.8
}
dataBinding {
enabled = true
}
//数据解析
implementation 'com.squareup.retrofit2:converter-gson:2.4.0'
//Android SQLite操作框架
implementation 'org.litepal.guolindev:core:3.1.1'
然后创建assets文件夹,文件夹下面新建一个litepal.xml文件
<?xml version="1.0" encoding="utf-8"?>
<litepal>
<!--数据库名称-->
<dbname value="Demo" />
<!--数据库版本-->
<version value="1" />
<!--映射模型-->
<list>
</list>
</litepal>
创建DemoApplication
然后在AndroidManifest.xml中指定
现在可以创建数据模型了。
③ 数据配置
这里建了一个model然后里面放数据实体,继承LitePalSupport是为了能够使用增删改查,代码如下:
package com.llw.litepalusedemo.model;
import org.litepal.crud.LitePalSupport;
//区/县
public class Area extends LitePalSupport {
private int id;//这个id是可以不用的,因为会默认创建一个自增的id
private String name;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
然后在litepal.xml中配置
④ 一顿操作
首先改动activity_main.xml布局,在最外侧增加标签,改动后代码如下:
<?xml version="1.0" encoding="utf-8"?>
<layout>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:orientation="vertical"
android:layout_height="match_parent"
tools:context=".MainActivity">
<TextView
android:id="@+id/tv_result"
android:gravity="center"
android:text="结果"
android:textColor="#000"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"/>
<LinearLayout
android:gravity="center"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1">
<Button
android:id="@+id/btn_add"
android:text="增加数据"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<Button
android:id="@+id/btn_update"
android:text="修改数据"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<Button
android:id="@+id/btn_query"
android:text="查询数据"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<Button
android:id="@+id/btn_delete"
android:text="删除数据"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</LinearLayout>
</LinearLayout>
</layout>
然后进入MainActivity,
代码如下:
package com.llw.litepalusedemo;
import androidx.appcompat.app.AppCompatActivity;
import androidx.databinding.DataBindingUtil;
import android.os.Bundle;
import android.widget.Toast;
import com.google.gson.Gson;
import com.llw.litepalusedemo.databinding.ActivityMainBinding;
import com.llw.litepalusedemo.model.Area;
import org.litepal.LitePal;
import java.util.List;
public class MainActivity extends AppCompatActivity {
ActivityMainBinding mb;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//绑定视图
mb = DataBindingUtil.setContentView(this,R.layout.activity_main);
mb.btnAdd.setOnClickListener(v -> {//添加数据
Area area = new Area();
area.setName("福田");
area.save();//保存
if(area.save()){
showMsg("添加数据成功");
}else {
showMsg("添加数据失败");
}
});
mb.btnUpdate.setOnClickListener(v -> {//修改数据
Area area = new Area();
area.setName("宝安");
area.update(1);//修改指定ID的数据
//area.setName("南山");
//area.updateAll("name = ?","福田");//修改所有名字为福田的为南山
showMsg("修改数据成功");
});
mb.btnQuery.setOnClickListener(v -> {//查询数据
//查询指定ID的数据
//Area area = LitePal.find(Area.class,1);
//查询所有数据
List<Area> area = LitePal.findAll(Area.class);
mb.tvResult.setText(new Gson().toJson(area));
});
mb.btnDelete.setOnClickListener(v -> {
LitePal.delete(Area.class, 1);//删除指定id
//LitePal.deleteAll(Area.class, "name = ?" , "福田");//删除所有name为福田的
showMsg("删除数据成功");
});
}
private void showMsg(String msg){
Toast.makeText(MainActivity.this,msg,Toast.LENGTH_SHORT).show();
}
}
效果图
OK,写完收工。
相关文章
- Android系统自带的android.util.Base64的实现源码
- 最简单的基于FFmpeg的移动端例子:Android 视频转码器
- android用户界面之PopupWindow教程实例汇总
- 《Android游戏开发详解》一2.6 构建一个简单的计算器程序
- 《OpenGL ES 3.x游戏开发(上卷)》一1.2 搭建Android开发环境
- 《Android 源码设计模式解析与实战》——第2章,第2.5节单例模式的简单示例
- Android入门之文件系统操作(一)简单的文件浏览器
- Android的NDK开发(2)————利用Android NDK编写一个简单的HelloWorld
- Android Scroller简单用法
- Android 中文API (67) —— BluetoothClass.Device.Major
- Android loading进度条使用简单总结
- Android 通知栏用法例子
- Android蓝牙通信功能开发
- android开发支付宝接口开发流程(密钥篇)
- Android xml资源文件中@、@android:type、@*、?、@+含义和区别
- Android Studio升级或更新项目,经常造访的“Could not find com.android.tools.build :gradle: x.x.x”的原因分析
- Android Handler的简单使用
- Android SDK下载速度慢的解决方法(简单使用代理)
- Android Studio 爬虫 之 简单实现使用 jsoup/okhttp3 爬取购物商品信息的案例demo(附有详细步骤)
- Android Studio 基础 之 简单获取手机端所有图片
- Android---61---TabHost简单使用
- 安卓开发学习笔记(五):史上最简单且华丽地实现Android Stutio当中Webview控件https/http协议的方法
- [Android] android:visibility属性应用