1. 程式人生 > >EasySQL 輕鬆上手的資料庫框架

EasySQL 輕鬆上手的資料庫框架

EasySQL是由我獨立開發的一款操作資料庫的框架,特點是上手容易,使用簡單。

目前版本是 v0.1.3

那麼我就開始了,這款框架目前已有的功能如下:

  1. 建立資料庫
  2. 刪除資料庫
  3. 建立表
  4. 增刪改查
  5. 資料庫自動升級

平時不怎麼鼓搗資料庫的,用資料庫的時候,感覺也就這幾個功能哈!

那麼我也不按照順序來介紹這些功能應該怎麼實現,我從開發的角度來接受如何使用這個框架吧!

使用

第一步:將其新增到儲存庫末尾的根build.gradle中:

allprojects {
    repositories {
        maven { url 'https://jitpack.io' }
} }

第二步:新增到依賴

dependencies {
     implementation 'com.github.qixuefeng:EasySQL:0.1.3'
}

資料庫操作

建立資料庫:

// 建立資料庫
EasySQL.with(this).createDB(“newdb“);

這裡,我們建立了一個數據庫名為newdb的資料庫檔案,這裡是不用加.db的,所以只需要輸入資料庫名字就行了。

多建立幾個資料庫,提供兩種方式:

EasySQL.with(this).createDB("newdb1").createDB("newdb2").createDB
("newdb3"); EasySQL.with(this).createDB("newdb1", "newdb2", "newdb3");

這兩行的效果其實都一樣都,都是建立3個數據庫

刪除資料庫: 刪除資料庫的方法也很簡單:

// 刪除資料庫 
boolean isSucceed = EasySQL.with(this).deleteDatabase(dbName);

返回boolean型別代表是否刪除成功,這個deleteDatabase方法裡面也是傳資料庫名,不帶.db,話說可帶可不帶。

比如我要把剛剛建立帶newdb2.db給刪了,我就可以:

EasySQL.with
(this).deleteDatabase(“newdb2“);

檢視資料庫: 如果我們要檢視已經建立了多少資料庫了,我們可以使用如下程式碼:

// 檢視所有資料庫
Set<String> dbList = EasySQL.with(this).listName();

使用資料庫:

使用指定資料庫的程式碼是:

// 使用指定資料庫
EasySQL.with(context).use(dbName);

使用指定資料庫能幹嘛呢,相當於決定使用了該資料庫,這個時候,就可以在資料庫中作新建表之類的操作了。

建立表:

建立表之前,需要新建一個實體類,並且這個實體類需要繼承EasyTable類,比如:

public class StudentTable extends EasyTable {

    private String name;

    private int age;

    private String addr;

    public String getName() {
        return name;
    }

    public StudentTable setName(String name) {
        this.name = name;
        return this;
    }

    public int getAge() {
        return age;
    }

    public StudentTable setAge(int age) {
        this.age = age;
        return this;
    }

    public String getAddr() {
        return addr;
    }

    public StudentTable setAddr(String addr) {
        this.addr = addr;
        return this;
    }

    @Override
    public String toString() {
        return "StudentTable{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", addr='" + addr + '\'' +
                '}';
    }
}

這裡有一點需要注意,EasySQL支援的資料型別一共有9種,對應:

Byte
Long
Short
Integer
Float
Double
String
Boolean
byte[]

而且實體類必須要有一個無參的構造方法方可生效。

既然實體類已經有了,那麼怎麼建立表呢,很簡單:

// 建立表:
EasySQL.with(this).use(dbname).createTable(StudentTable.class)
// 連續建立表2種方式:
EasySQL.with(this).use(dbname).createTable(StudentTable.class).createTable(xxx.class);
EasySQL.with(this).use(dbname).createTable(xxx.class, xxx.class, xxx.class);

刪除表: 刪除表就顯的簡單多了:

// 刪除表
EasySQL.with(context).use(dbName).deleteTable(StudentTable.class); 

表操作

增: 新增資料到表中,我們需要用到一個EasyEntity類,這個類主要是起到一個打包作用,將資料打包成一個EasyEntity,然後將這個包裹丟給EasySQL,這樣做的好處是,不侷限只儲存將一種資料保證到一個表中,可以同時新增多個表中的多個數據,具體操作是:

EasyEntity easyEntity = new EasyEntity();
easyEntity
    .add(new StudentTable().setName("張三").setAge(18).setAddr("北京"))
    .add(new StudentTable().setName("李四").setAge(22).setAddr("上海"));

    // 不僅可以新增StudentTable表的資料,還可以新增其他表的資料

EasySQL.with(this).use(dbname).save(easyEntity);

比如這裡我們新增了2條資料

刪: 刪除資料就很簡單了:

// 後面的兩個引數跟Android自帶的引數用法基本一樣,這裡即為刪除名字為李四的資料
EasySQL.with(context).use(dbName).delete(StudentTable.class, "name = ?", "李四");

// 清空表中所有資料
EasySQL.with(context).use(dbName).clear(StudentTable.class);

改: 修改資料也十分簡單:

StudentTable studentTable = new StudentTable().setName("老李四").setAge(89).setAddr("老上海");
EasySQL.with(this).use(dbname).update(studentTable, "name = ?", new String[]{"李四"});

新的例項替換老的例項即可,條件判斷跟Android自帶的引數用法一樣

查:

現在我們來說說查詢的方法,這裡提供了很多總查詢的方式,不過都歸類為一個API:

ArrayList<StudentTable> studentTables = 
        EasySQL.with(this).use(dbname).retrieve(各種引數);

retrieve的引數確實非常多,不過靈活性也是及其高的,如圖:

這裡寫圖片描述

這裡就介紹第一個和最後一個,第一個,如果你查詢資料的時候,沒什麼限制,只是單純的想得到所有資料,那麼只含有一個引數的方法十分適合你,現在我來講講引數最多的這個方法:

retrieve(Class<T> classzz, String[] columns, String selection, String[] selectionArgs, String field, boolean isAsc)

一共有6個引數:

Class<T> classzz 待查詢的表
String[] columns 需要被查詢的欄位
String selection 查詢條件,如:name = ?
String[] selectionArgs 查詢條件的值,如:new String[]{"李四"}
String field 根據哪個欄位排序
boolean isAsc 是否升序,是:升序;否:降序

選擇靈活,可以隨意選擇搭配。

資料庫升級

關於資料庫的升級,EasySQL是十分便捷的,如果是需要新增欄位,只需要在原來的表中新增欄位,如:

public class StudentTable extends EasyTable {

    private String name;

    private int age;

    private String addr;

    // 新增的欄位
    private String gender;

    public String getName() {
        return name;
    }

    public StudentTable setName(String name) {
        this.name = name;
        return this;
    }

    public int getAge() {
        return age;
    }

    public StudentTable setAge(int age) {
        this.age = age;
        return this;
    }

    public String getAddr() {
        return addr;
    }

    public StudentTable setAddr(String addr) {
        this.addr = addr;
        return this;
    }

    public String getGender() {
        return gender;
    }

    public StudentTable setGender(String gender) {
        this.gender = gender;
        return this;
    }

}

然後呼叫:

EasySQL.with(this).updateAllTable("newdb1");

資料庫中的表就得到了升級:

是不是很方便呢。

最後

EasySQL可以通過少量的操作,就可以對資料庫進行指點江山,升級資料庫也不需要考慮資料庫版本的問題,儘量給大家帶來簡潔明瞭的感覺,目前EasySQL的功能相對比較基礎,不過大部分常見的功能有支援,在往後的日子裡,相信EasySQL會有更多的功能,希望大家支援!