1. 程式人生 > >Android:日常學習筆記(10)———使用LitePal操作數據庫

Android:日常學習筆記(10)———使用LitePal操作數據庫

分享 數據 turn find netstat price 彈出 category 模式

Android:日常學習筆記(10)———使用LitePal操作數據庫

引入LitePal

什麽是LitePal

  LitePal是一款開源的Android數據庫框架,采用了對象關系映射(ORM)的模式,將平時開發時最常用的一些數據庫功能進行了封裝,使得開發者不用編寫一行SQL語句就可以完成各種建表、増刪改查的操作。並且LitePal很“輕”,jar包大小不到100k,而且近乎零配置,這一點和Hibernate這類的框架有很大區別。目前LitePal的源碼已經托管到了GitHub上。

關於對象關系映射:

  我們使用的對象語言是面向對象語言,而使用的數據庫則是關系型數據庫,將面向對象的語言與面向關系的數據庫之間建立一種映射關系

,這就是對象關系映射。我們可以不用編寫任何SQL語句,而用面向對象的設計思想操作數據庫

配置LitePal

  1.添加依賴

  技術分享

  2.編寫XML配置文件

<?xml version="1.0" encoding="utf-8" ?>
<litepal>
    <dbname value="BookStore"></dbname>  //數據庫名稱
    <version value="1"></version>     //數據庫版本
    <list></list>
</litepal>

說明:

<dbname>是數據庫的名字
<version>是數據庫的版本號
<list>是數據庫的映射模型(數據庫表)
<mapping>是數據庫的映射模型的地址(數據庫表結構)

  3.配置LitePalApplication

    <application
        android:name="org.litepad.LitePalApplication"
        .....>
    ....
    </application>

創建和升級數據庫

創建數據庫及Book表

1.定義JavaBean

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;
    }

   .....          
}

2.將Book類添加到映射模型列表中

<?xml version="1.0" encoding="utf-8" ?>
<litepal>
<dbname value="BookStore"></dbname>
<version value="1"></version>
<list>
    <mapping class="com.example.zy.dealhelper.database.Book"></mapping>
</list>
</litepal>

3.調用命令創建數據庫

            public void onClick(View v) {
                Connector.getDatabase();
            }

4.litePal會自動創建數據庫和Mapping對象類的數據表

技術分享

升級數據庫

  LitePal升級數據庫非常簡單,你完全不需要思考任何的邏輯,只需要修改你想改的任何內容,然後將版本後遞增即可。比如我們要往Book表中添加一列,如press(出版社),直接在JavaBean中添加即可。

public class Book {
    private  int id;
    private String author;
    private double price;
    private int pages;
    private String name;
    private String press;//出版社

    public String getPress() {
        return press;
    }

    public void setPress(String press) {
        this.press = press;
    }
   ......    
}

或者想多創建一張表,你也只需要再寫一個JavaBean類就好。

public class Catagory {
    private int id;
    private String categoryName;

    public int getId() {
        return id;
    }

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

別忘了最後再LitePal的配置文件中,加入mapping和更新版本號

技術分享

增刪改查

添加數據

使用LitePal添加數據異常簡單:

   我們只需要創建出模型類並將數據設置好,調用save()方法即可。

前提:

  要執行CURD操作的數據表必須繼承自DataSupport

  技術分享

實例:

            public void onClick(View v) {
                Book book =new Book();
                book.setName("The Da Vinci Code");
                book.setAuthor("Dan Brown");
                book.setPages(454);
                book.setPrice(16.96);
                book.setPress("Unknow");
                book.save(); //只需要調用繼承方法,save()即可
            }

更新數據

對已存儲對象重新設值:

  技術分享

條件匹配:

  技術分享

  切記如果不指定條件會更新所有記錄的

刪除數據

DataSupport.deleteAll(Book.class,"price < ?","15")

查詢數據

簡單查詢:

//查找某表的所有數據
List<Book> books =DataSupport.findAll(Book.class);
//第一條數據
Book first =DataSupport.findFirst(Book.class);
//最後一條數據
Book last =DataSupport.findLast(Book.class);

連綴查詢:

技術分享

關於ADB啟動錯誤的解決方案:

1、CMD命令窗口輸入:adb nodaemon server 。然後就會提示你哪個端口被占用了。

2、輸入netstat -ano | findstr "5037" 。然後會彈出提示告訴你哪些進程占用了該端口,記住非0地址的後面的數字

3、打開任務管理器,點擊“進程“,“查看”-“選擇列”,勾選PID

4、查找第2步中看到的數字PID,然後結束相關進程,即可

  

Android:日常學習筆記(10)———使用LitePal操作數據庫