EasySQL 輕鬆上手的資料庫框架
EasySQL是由我獨立開發的一款操作資料庫的框架,特點是上手容易,使用簡單。
目前版本是 v0.1.3
那麼我就開始了,這款框架目前已有的功能如下:
- 建立資料庫
- 刪除資料庫
- 建立表
- 增刪改查
- 資料庫自動升級
平時不怎麼鼓搗資料庫的,用資料庫的時候,感覺也就這幾個功能哈!
那麼我也不按照順序來介紹這些功能應該怎麼實現,我從開發的角度來接受如何使用這個框架吧!
使用
第一步:將其新增到儲存庫末尾的根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會有更多的功能,希望大家支援!