日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > Android >内容正文

Android

android 保存文件_Android 数据库操作框架LitePal使用介绍(一)

發(fā)布時間:2023/12/2 Android 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android 保存文件_Android 数据库操作框架LitePal使用介绍(一) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

在Android開發(fā)中,前端開發(fā)很多情況數(shù)據(jù)都是從服務(wù)器端獲取的,使用本地數(shù)據(jù)庫的情況可能不會太常見。有一些需要本地保存的配置數(shù)據(jù),也是使用Hawk框架等本地緩存框架進(jìn)行保存。但是對于如果是一些需要本地保存的,又是大量的數(shù)據(jù)時,那可能就需要用到Android自己本身的數(shù)據(jù)庫,如果使用本身的框架操作數(shù)據(jù)庫,步驟會比較繁瑣。今天介紹的LitePal框架,可以大大減少操作數(shù)據(jù)庫的代碼量,也更方便簡潔。

LitPal介紹

LitePal是一個開源的Android庫,目標(biāo)是讓Android開發(fā)者更加方便快捷的進(jìn)行Android本地數(shù)據(jù)庫的開發(fā)。

LitePal 的特性

  • 使用對象關(guān)系映射(ORM)模式。
  • 幾乎沒有配置(只有一個配置文件和很少的屬性)。
  • 自動維護(hù)所有表。創(chuàng)建、修改或刪除表)。
  • 多數(shù)據(jù)庫支持。
  • 封裝api以避免編寫SQL語句。
  • 非常流暢的查詢API。
  • 使用SQL的另一種選擇,但是比原來的api更簡單更好。

LitePal使用

1.引入LitePal庫

打開build.gradle文件,編譯dependencies 節(jié)點,增加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文件夾,則需要新建一個。如果是已經(jīng)存在asset文件夾,則忽略這一步操作。

2-1.找到app文件夾,點右鍵 New > Folder > Assets Folder

2-2 . 然后點擊Finish即可

新建好Assets文件夾后,找到assets 文件夾,右鍵 New > File

新建一個名為litepal.xml的文件。

然后復(fù)制官方的代碼到這個文件中即可

<?xml version="1.0" encoding="utf-8"?>

這是唯一的配置文件,屬性也很簡單。

  • dbname 為配置項目的數(shù)據(jù)庫名
  • version 為數(shù)據(jù)庫的版本,如果數(shù)據(jù)庫有變化,都要把這個值進(jìn)行修改喔,不然修改不會起作用的
  • list 為數(shù)據(jù)庫的映射類
  • storage 配置存儲數(shù)據(jù)庫文件的位置

3.配置LitePalApplication

如果是項目中有自己的Application類,就直接在Application類中對LitePal進(jìn)行初始化即可,

例如

public class MyApplication extends Application { @Override public void onCreate() { super.onCreate(); LitePal.initialize(this); } ...}

如果不想自己創(chuàng)建一個新的Application類,也可以用框架中提供的org.litepal.LitePalApplication類,修改AndroidManifest.xml文件中的配置

<?xml version="1.0" encoding="utf-8"?>

重點是android:name="org.litepal.LitePalApplication"

4.創(chuàng)建數(shù)據(jù)庫的表

在LitePal中創(chuàng)建數(shù)據(jù)庫的表其實就是創(chuàng)建類

例如我創(chuàng)建了一個User類,其實就是創(chuàng)建了一個User表

public class User extends LitePalSupport { @Column(unique = true) private String account; private String password; private String nickName; private int age; //...忽略set和get方法}

可以通過注釋對字段的屬性進(jìn)行配置,例如@Column(unique = true)就是表示這個字段是要唯一,不能重復(fù)。

創(chuàng)建好類后,我們需要把這個類添加到LitePal配置文件中

到此我們的數(shù)據(jù)庫配置和建表基本是完成了

5.開始進(jìn)行對數(shù)據(jù)進(jìn)行操作

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, "查詢成功,結(jié)果:" + users.get(0).toString(), Toast.LENGTH_LONG); } else { Toast.makeText(this, "查詢成功,結(jié)果為空", Toast.LENGTH_LONG); } }}

布局文件

<?xml version="1.0" encoding="utf-8"?>

保存的效果圖

第一次點擊保存

第二次點擊保存,保存失敗是因為我們設(shè)置了賬號字段是唯一的,保存了之后,再保存同樣的賬號就無法保存了

查詢效果圖

到此,我們基本可以使用LitePal對數(shù)據(jù)進(jìn)行保存和查詢了。LitePal除了這個還提供了很多其他的用法,這個需要我們繼續(xù)深入探索。

總結(jié)

以上是生活随笔為你收集整理的android 保存文件_Android 数据库操作框架LitePal使用介绍(一)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。