1. 程式人生 > >LitePal之建立和升級資料庫

LitePal之建立和升級資料庫

LitePal是一款開源的Android資料庫框架,它採用了物件對映(ORM)的模式,並將我們平時開發最常用到的一些資料庫功能進行了封裝,使得不用編寫一行SQL語句就可以完成各種建表和增刪改查的操作。

要使用LitePal的第一步,我們需要在app/build.gradle檔案中宣告該開源庫的引用,最新的版本可以去這裡查詢。編輯app/build.gradle檔案,在dependencies閉包中新增如下內容:

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:26.1.0'
implementation 'com.android.support.constraint:constraint-layout:1.0.2' testImplementation 'junit:junit:4.12' androidTestImplementation 'com.android.support.test:runner:1.0.1' androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1' implementation'org.litepal.android:core:1.6.1'
}
新增的這一行宣告,前面部分是固定的,最後的1.6.1是版本號的意思,最新的版本號可以去LitePal的專案主頁上去檢視。

這樣我們就把LitePal成功引入到專案中了,接下來需要配置litepal.xml檔案。右擊app/src/main目錄--->New--->Directory,建立一個assets目錄,然後在assets目錄下再新建一個litepal.xml檔案,接著編輯litepal.xml檔案中的內容,如下:

<?xml version="1.0" encoding="UTF-8" ?>
<litepal>
    <dbname value = 
"BookStore"></dbname> <version value = "1"></version> <list></list> </litepal>
其中,<dbname>標籤用於指定資料庫名,<version>標籤用於指定資料庫版本號,<list>標籤用於指定所有的對映模型,最後還需要再配置一下LitePalApplication,編輯AndroidManifest.xml中的程式碼,如下:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.activitytest">
    <application
android:name="org.litepal.LitePalApplication"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>
這裡我們將專案的application配置為org.litepal.LitePalApplication,這樣才能讓LitePal的所有功能都可以正常工作,現在LitePal都已經配置好了,現在我們就可以用它了。

剛才在介紹的時候已經說過了,LitePal採取的是物件關係對映(ORM)的模式,那麼什麼是物件關係對映呢?簡單點說,我們使用的變成語言是面嚮物件語言,而使用的資料庫則是關係型資料庫,那麼將面向物件的語言和麵向關係的資料庫之間建立一種對映關係,這就是物件關係對映,首先,我們定義一個Book類,程式碼如下:

public class Book {

    private  int id;
    private String author;
    private double price;
    private int pages;
    private String name;
    public int getId() {
        return id;
}

    public void setId(int id) {
        this.id = id;
}

    public String getAuthor() {
        return author;
}

    public void setAuthor(String author) {
        this.author = author;
}

    public double getPrice() {
        return price;
}

    public void setPrice(double price) {
        this.price = price;
}

    public int getPages() {
        return pages;
}

    public void setPages(int pages) {
        this.pages = pages;
}

    public String getName() {
        return name;
}

    public void setName(String name) {
        this.name = name;
}
}
這是一個典型的Java bean,在Book類中我們定義了id,author,price,pages,name這幾個欄位,並生成了相應的get()和set()方法,Book類就會對應資料庫中的Book表,而類中的每一個欄位分別對應了表中的每一個列,這就是物件關係對映最直觀的體驗。

接下來我們還需要將Book類新增到對映模型列表當中,修改litepal.xml中的程式碼,如下:

<?xml version="1.0" encoding="UTF-8" ?>
<litepal>
    <dbname value = "BookStore"></dbname>
    <version value = "1"></version>
    <list>
        <mapping class= "com.example.activitytest.Book"></mapping>
    </list>
</litepal>
這裡使用<mapping>標籤來宣告我們要配置的對映模型類,注意一定要使用完整的類名,不管有多少模型類需要對映,都使用同樣的方式配置在<list>標籤下即可。

沒錯,這樣就已經把所有工作都已經完成了,現在只要進行任意一次資料庫的操作,BookStore.db資料庫應該就會自動創建出來,修改activity_main.xml中的程式碼,如下:

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout 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:layout_height="match_parent"
tools:context="com.example.activitytest.MainActivity">
    <Button
android:id="@+id/create_database"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Create_databse"
android:textAllCaps="false"/>
</android.support.constraint.ConstraintLayout>
佈局很簡單,就是加入一個按鈕,用於建立資料庫,最後修改MainActivity中的程式碼,如下:
public class MainActivity extends AppCompatActivity {

    @Override
protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button createDatabase = findViewById(R.id.create_database);
createDatabase.setOnClickListener(new View.OnClickListener() {
            @Override
public void onClick(View view) {
                Connector.getDatabase();
}
        });
}
}
其中,呼叫Connector.getDatabase()方法就是一次最簡單的資料庫操作,只要點選一下按鈕,資料庫就會自動建立完成了,執行一下程式,然後點選Create database按鈕,我們還是通過終端命令,進入/data/data/com.example.activitytest/databases/目錄下,如圖:


非常棒,資料庫檔案已經建立成功了,接下來我們使用sqlite3命令開啟BookStore.db檔案,然後再使用.schema命令來檢視建表語句,如圖:

可以看到,這裡有3張表的建表語句,其中android_matadata表任然不用管,table_schema表是LitePal內部使用的,我們也可以直接忽視,book表就是根據我們定義的Book類以及類中的欄位來自動生成的了。

public class Book {

    ...
    
    private String press;
...

    public String getPress() {
        return press;
}

    public void setPress(String press) {
        this.press = press;
}
}
與此同時,我們還想再新增一張Category表,那麼只需要新建一個Category類就可以了,如下:
public class Category {
    
    private int id;
    private String categoryName;
    private int categoryCode;
    public void setCategoryName(String categoryName) {
        this.categoryName = categoryName;
}

    public void setCategoryCode(int categoryCode) {
        this.categoryCode = categoryCode;
}
}
改完了所有我們想改的東西,只需要記得將版本號加1就行了,當然由於這裡還添加了一個新的模型類,因此也需要將它新增到對映模型列表中,修改litepal.xml中的程式碼,如下:
<?xml version="1.0" encoding="UTF-8" ?>
<litepal>
    <dbname value = "BookStore"></dbname>
    <version value = "2"></version>
    <list>
        <mapping class= "com.example.activitytest.Book"></mapping>
        <mapping class= "com.example.activitytest.Category"></mapping>
    </list>
</litepal>
現在重新執行一下程式,然後點選Create database按鈕,再檢視一下最新的建表語句,結果如圖:


相關推薦

LitePal建立升級資料庫

LitePal是一款開源的Android資料庫框架,它採用了物件對映(ORM)的模式,並將我們平時開發最常用到的一些資料庫功能進行了封裝,使得不用編寫一行SQL語句就可以完成各種建表和增刪改查的操作。 要使用LitePal的第一步,我們需要在app/build.gradle

Oracle資料庫建立管理表

Oracle資料庫總結: 建表語法: create table tablename (columnname datatype, ..............) [with option] [as sql語句]; SQL> create tab

SQL Sever實驗一 建立刪除資料庫資料表

一. 實驗目的     1. 熟悉SQL    Server    2008    中SQL    Server   &n

《SQL 學習指南》(第 3 版)學習筆記(2) - 第 2 章 建立使用資料庫

2.1 建立 MySQL 資料庫 (如果要匯入示例 .sql 指令碼檔案,除了書上的 8 個步驟,我另外做幾點修正和補充: a. P 14 面倒數第 4 行給的連結失效了,正確的連結:https://resources.oreilly.com/examples/9780596007

建立配置資料庫

1.進入mysql中建立資料庫 2.Django的資料庫配置   在settings.py中配置資料庫的資訊   DATABASES = {     'default':{         'ENGINE':'django.db.backends.sqlite3',         'NAME':os.

DS二叉排序樹建立插入

DS二叉排序樹之建立和插入 時間限制: 1 Sec  記憶體限制: 128 MB 【Java有三倍的時間和記憶體限制】 題目描述 給出一個數據序列,建立二叉排序樹,並實現插入功能 對二叉排序樹進行中序遍歷,可以得到有序的

Oracle 建立管理表

Oracle 之建立和管理表 常見的資料庫物件: 物件 描述 表 基本的資料儲存集合,由行和列組成 檢視 重表中抽出的邏輯上相關的資料集合 序列

SQL語法建立管理表

一、建立資料庫 # 建立資料庫,選擇具體的庫 #建立資料庫 CREATE DATABASE temp; #顯示當前使用者下的資料庫 SHOW DATABASES; # 使用某個具體的資料庫,”使用

Hyperledger-composer安裝升級業務網路

一、使用Yeoman建立業務網路骨架 yo hyperledger-composer:businessnetwork 二、修改模型檔案(.cto)、鏈程式碼邏輯檔案(logic.js)、輔助查詢檔案

SqlServer--用程式碼建立刪除資料庫

建立資料庫,建立表,設定主鍵 資料庫的分離和附加 MS SQLServer的每個資料庫包含: 1個主資料檔案(.mdf)必須。 1個事務日誌檔案(.ldf)必須。 可以包含: 任意多個次要資料檔案(.ndf) 多個事務日誌檔案 檔案組:可將多個數據檔案邏輯的分到一組,方便日後管理維護(備份、將表建

D3D12渲染技術建立啟用紋理

紋理在任何引擎都有使用,它其實就是為模型提供的紋理材質,既然我們介紹的是D3D12,那就從dds檔案介紹說起。 載入DDS檔案 但是,程式碼僅支援DirectX 11,我們修改了DDSTextureLoader.h / .cpp檔案併為DirectX 12提供

臺賬建立sqlite資料庫的資料匯入

cd D:\sqlite_files\sqlite-tools-win32-x86-3230100 執行 sqlite3 device.db 出現sqlite>退出命令 .quit D:\sqlite_files\sqlite-tools-win32-x86-3230100>sqlite

SQL語句基礎1:建立刪除資料庫,建表,插入資料並加入適當約束

1.建立圖書管理資料庫 create database bookManager on (     name=bookManager_data,     filename='D:\SQL\bookManager_data.mdf',     size=5MB,     maxs

SQL_3th_T-SQL語句建立刪除資料庫、新增刪除約束

在SQL Server 2008 R2中點選新建查詢,輸入如下程式碼,選中程式碼段,並點選執行,就能執行選中區域程式碼: --使用數T-SQL語句來建立資料庫 create database Students on ( name='Students', --這是資料檔案的邏

Ubuntu下Python建立連線資料庫

[email protected]:~# mysql -u root -p Enter password: Welcome to the MySQL monitor.  Commands end with ; or \g. Your MySQL connecti

Asp.net WebForm使用codeFirst建立修改資料庫小結

在asp.net4.5框架下使用codeFirst新增和修改資料庫檔案小結。 建立: 1、建立模型類 2、In Package Manager Console, run the command:enable-migrations -ContextTypeName ContosoUniversityModelB

2.建立刪除資料庫例項

如何建立                  開啟 database configuration Assistant                 (選擇建立資料庫,選擇一般用途,起一個數據庫名,設

Oracle入門(十四.22)建立DDL資料庫事件觸發器

一、什麼是DDL和資料庫事件觸發器?DDL語句觸發DDL觸發器:CREATE,ALTER或DROP。資料庫事件觸發器由資料庫中的非SQL事件觸發,例如:•使用者連線到資料庫或與資料庫斷開連線。•DBA啟動或關閉資料庫。•使用者會話中引發了特定的異常。(1)在DDL語句中建立觸

使用GreenDao建立表、關聯表(一對一,一對多,多對多)、CURD、升級資料庫等操作

        應用場景:從照片中找出包含有使用者人臉的照片,並儲存該照片中的人臉特徵、使用該特徵和使用者人臉特徵對比,滿足條件,照片就儲存到該使用者表裡 一、建立表 GreenDao託管地址:https://github.com/greenrobot

一、MySQL資料庫簡介安裝

一、基礎部分 1.資料庫是簡介     之前所學,資料要永久儲存,比如使用者註冊的使用者資訊,都是保存於檔案中,而檔案只能存在於某一臺機器上。 如果我們不考慮從檔案中讀取資料的效率問題,並且假設我們的程式所有的元件都執行在一臺機器上,那麼用檔案存