android 保存文件_Android 数据库操作框架LitePal使用介绍(一)
在Android开发中,前端开发很多情况数据都是从服务器端获取的,使用本地数据库的情况可能不会太常见。有一些需要本地保存的配置数据,也是使用Hawk框架等本地缓存框架进行保存。但是对于如果是一些需要本地保存的,又是大量的数据时,那可能就需要用到Android自己本身的数据库,如果使用本身的框架操作数据库,步骤会比较繁琐。今天介绍的LitePal框架,可以大大减少操作数据库的代码量,也更方便简洁。
LitPal介绍
LitePal是一个开源的Android库,目标是让Android开发者更加方便快捷的进行Android本地数据库的开发。
LitePal 的特性
- 使用对象关系映射(ORM)模式。
- 几乎没有配置(只有一个配置文件和很少的属性)。
- 自动维护所有表。创建、修改或删除表)。
- 多数据库支持。
- 封装api以避免编写SQL语句。
- 非常流畅的查询API。
- 使用SQL的另一种选择,但是比原来的api更简单更好。
LitePal使用
1.引入LitePal库
打开build.gradle文件,编译dependencies 节点,增加implementation 'org.litepal.guolindev:core:3.2.2'
dependencies { implementation fileTree(dir: "libs", include: ["*.jar"]) implementation 'androidx.appcompat:appcompat:1.2.0' implementation 'androidx.constraintlayout:constraintlayout:2.0.1' testImplementation 'junit:junit:4.12' androidTestImplementation 'androidx.test.ext:junit:1.1.2' androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0' //引入LitePal库 implementation 'org.litepal.guolindev:core:3.2.2'}
2.在assets资源文件夹中增加litepal.xml文件
如果是新建的项目,没有asset文件夹,则需要新建一个。如果是已经存在asset文件夹,则忽略这一步操作。
2-1.找到app文件夹,点右键 New > Folder > Assets Folder
2-2 . 然后点击Finish即可
新建好Assets文件夹后,找到assets 文件夹,右键 New > File
新建一个名为litepal.xml的文件。
然后复制官方的代码到这个文件中即可
<?xml version="1.0" encoding="utf-8"?>
这是唯一的配置文件,属性也很简单。
- dbname 为配置项目的数据库名
- version 为数据库的版本,如果数据库有变化,都要把这个值进行修改喔,不然修改不会起作用的
- list 为数据库的映射类
- storage 配置存储数据库文件的位置
3.配置LitePalApplication
如果是项目中有自己的Application类,就直接在Application类中对LitePal进行初始化即可,
例如
public class MyApplication extends Application { @Override public void onCreate() { super.onCreate(); LitePal.initialize(this); } ...}
如果不想自己创建一个新的Application类,也可以用框架中提供的org.litepal.LitePalApplication类,修改AndroidManifest.xml文件中的配置
<?xml version="1.0" encoding="utf-8"?>
重点是android:name="org.litepal.LitePalApplication"
4.创建数据库的表
在LitePal中创建数据库的表其实就是创建类
例如我创建了一个User类,其实就是创建了一个User表
public class User extends LitePalSupport { @Column(unique = true) private String account; private String password; private String nickName; private int age; //...忽略set和get方法}
可以通过注释对字段的属性进行配置,例如@Column(unique = true)就是表示这个字段是要唯一,不能重复。
创建好类后,我们需要把这个类添加到LitePal配置文件中
到此我们的数据库配置和建表基本是完成了
5.开始进行对数据进行操作
Activity类
public class MainActivity extends AppCompatActivity { EditText mEtAccount; EditText mEtPassword; EditText mEtNickName; EditText mEtAge; EditText mEtCheckAccount; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mEtAccount = findViewById(R.id.et_account); mEtPassword = findViewById(R.id.et_password); mEtNickName = findViewById(R.id.et_nick_name); mEtAge = findViewById(R.id.et_age); mEtCheckAccount = findViewById(R.id.et_check_account); } public void onSave(View view) { String account = mEtAccount.getText().toString().trim(); String password = mEtPassword.getText().toString().trim(); String nickName = mEtNickName.getText().toString().trim(); int age = Integer.parseInt(mEtAge.getText().toString().trim()); User user = new User(); user.setAccount(account); user.setPassword(password); user.setNickName(nickName); user.setAge(age); if (user.save()) { Toast.makeText(this, "保存成功", Toast.LENGTH_LONG); } else { Toast.makeText(this, "保存成功", Toast.LENGTH_LONG); } } public void onCheck(View view) { String checkAccount = mEtCheckAccount.getText().toString().trim(); List users = LitePal.where("account=?", checkAccount).find(User.class); if (users != null && users.size() > 0) { Toast.makeText(this, "查询成功,结果:" + users.get(0).toString(), Toast.LENGTH_LONG); } else { Toast.makeText(this, "查询成功,结果为空", Toast.LENGTH_LONG); } }}
布局文件
<?xml version="1.0" encoding="utf-8"?>
保存的效果图
第一次点击保存
第二次点击保存,保存失败是因为我们设置了账号字段是唯一的,保存了之后,再保存同样的账号就无法保存了
查询效果图
到此,我们基本可以使用LitePal对数据进行保存和查询了。LitePal除了这个还提供了很多其他的用法,这个需要我们继续深入探索。
android 保存文件_Android 数据库操作框架LitePal使用介绍(一)相关推荐
- Android之单元测试及数据库操作,android的单元测试
1.新建android Test project 2. 选择针对测试的项目 3.新建类继承AndroidTestCase即可: package com.howlaa.sms.test; import ...
- 安卓本地轻量级数据库操作框架 greenDao3.2.2 详细教程附带Demo①——集成环境,开辟难题。
欢迎安卓本地轻量级数据库操作框架 greenDao3.2.2 学习之旅. 本套框架博客系列博客目录: 第一篇:认识 greenDao3.2.2 框架,集成环境,开辟难题. 第二篇:简单的进行 增.删. ...
- android.mk遍历子目录,android 保存文件的各种目录列表
一般的,我们可以通过context和Environment来获取要保存文件的目录 ($rootDir) +- /data -> Environment.getDataDirectory() | ...
- android保存文件到手机内存
2019独角兽企业重金招聘Python工程师标准>>> 首先要指定文件保存的位置,在Java中,我们可以直接使用 Filefile=new File("info.txt&q ...
- android存到手机内存,android保存文件到手机内存
首先要指定文件保存的位置,在Java中,我们可以直接使用 Filefile=new File("info.txt"),但是在Android中,使用这个路径文件会被保存到data/a ...
- 简单的Android对文件进行读写操作
环境: 1.系统:window7 2.Android版本:2.2 3.eclipse3.5.2(伽利略) 一.基本的流程图(写入文件) 二.模拟器运行界面 1.主界面 2.保存(不符合条件) 3. ...
- android存储到sd卡中,android保存文件到SD卡【文件存储】
sd卡用于保存大文件如视频,音频,大文档等 package cn.itcast.files; import cn.itcast.service.FileService; import android. ...
- xamarin和mysql_Xamarin.Android 使用 SQLiteOpenHelper 进行数据库操作
一.前言 在手机中进行网络连接不仅是耗时也是耗电的,而耗电却是致命的.所以我们就需要数据库帮助我们存储离线数据,以便在用户未使用网络的情况下也可以能够使用应用的部分功能,而在需要网络连接的功能上采用提 ...
- emlog mysql文件,emlog数据库操作类
/** * 数据库操作类 * * @copyright (c) Emlog All Rights Reserved */ /** * MYSQL数据操方法封装类 */ class MySql { /* ...
最新文章
- 生成树、最小生成树的一些性质以及邻域的概念
- PNN神经网络预测类别的例子
- CSS——Position定位
- 老陈学 C++ 序列之二: 友元函数
- mysql数字前面有0_Mysql中前边有0的数据,0会被舍去的问题
- 云联惠认证时间_云联惠强制关闭真正原因是什么?
- ARM Linux.2.6.34内核移植
- day18__文件操作
- mysql查询时间出来数字_mysql查询时间出来数字的解决方法
- 【LeetCode】剑指 Offer 14. 剪绳子
- Reactjs项目创建
- 微信支付对账单的详细说明
- 计算机语言中str是什么意思,vb中str什么意思
- Python每天练习——小程序006
- AcWing 342. 道路与航线 (双端队列广搜问题,SPFA)
- 操作电脑时间长,眼睛疲劳怎么办?
- Linux中常见文件类型及文件系统类型
- 2022年零基础自学网络安全/Web安全,看这一篇就够了
- selenium 模拟人工登录 高德开发者平台(python)
- echarts案例大全,echarts的Demo网站有哪些
热门文章
- 揭示垃圾收集暂停的时间长度
- 编写干净的测试–从配置开始
- 将社交登录添加到Spring MVC Web应用程序:配置
- Spring Social入门
- JUnit和Hamcrest:在assertEquals上进行改进
- Java Lambda语法替代
- 计算机维修与维护入门,计算机组装与维护基础知识
- 三菱q系列plc连接电脑步骤_三菱Q系列PLC与三菱变频器的CC-link通讯技术(我的学习笔记)...
- python 图片识别_python识别图片文字
- Linux 命令之 ps -- 显示进程状态/查看进程信息