Android 数据库 哪个好,目前最好用的安卓数据库,DBFlow使用详解
1.在你使用之前,建議你先閱讀一下官方文檔
https://agrosner.gitbooks.io/dbflow/content/
2.步驟如下:
(1)在項目級的gradle中添加
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.3.2'
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
}
}
allprojects {
repositories {
jcenter()
maven { url "https://www.jitpack.io" }
}
}
(2)在Module級別的gradle中添加
apply plugin: 'com.neenbedankt.android-apt'
def dbflow_version = "4.0.2"
dependencies {
apt "com.github.Raizlabs.DBFlow:dbflow-processor:${dbflow_version}"
compile "com.github.Raizlabs.DBFlow:dbflow-core:${dbflow_version}"
compile "com.github.Raizlabs.DBFlow:dbflow:${dbflow_version}"
// sql-cipher database encyrption (optional)
compile "com.github.Raizlabs.DBFlow:dbflow-sqlcipher:${dbflow_version}"
}
(3)在你的Application的onCreate()方法中初始化
@Override
public void onCreate() {
super.onCreate();
FlowManager.init(new FlowConfig.Builder(this).build());
// FlowManager.init(this);//這句也可以初始化
}
(4)新建AppDatabase類,配置數據庫相關參數
package song.peter.com.custompassword.dbflow;
import com.raizlabs.android.dbflow.annotation.Database;
import com.raizlabs.android.dbflow.annotation.Migration;
import com.raizlabs.android.dbflow.sql.SQLiteType;
import com.raizlabs.android.dbflow.sql.language.SQLite;
import com.raizlabs.android.dbflow.sql.migration.AlterTableMigration;
import com.raizlabs.android.dbflow.sql.migration.BaseMigration;
import com.raizlabs.android.dbflow.structure.database.DatabaseWrapper;
/**
* Created by peter on 2017/5/19.
*/
@Database(name = AppDatabase.NAME, version = AppDatabase.VERSION)
public final class AppDatabase {
//數據庫名稱
public static final String NAME = "AppDatabase";
//數據庫版本號
public static final int VERSION = 1;
}
(5)新建數據庫表
package song.peter.com.custompassword.dbflow;
import com.raizlabs.android.dbflow.annotation.Column;
import com.raizlabs.android.dbflow.annotation.PrimaryKey;
import com.raizlabs.android.dbflow.annotation.Table;
import com.raizlabs.android.dbflow.structure.BaseModel;
import java.util.UUID;
/**
* Created by peter on 2017/5/19.
* 要繼承BaseModel,這個類已經實現了增刪改查的方法
*/
@Table(database = AppDatabase.class)
public class UserData extends BaseModel {
@PrimaryKey(autoincrement = true)//ID自增
public long id;
/**
* 姓名
*/
@Column
public String name;
/**
* 年齡
*/
@Column
public int age;
/**
* 性別
*/
@Column
public boolean sex;
//備注:DBFlow會根據你的類名自動生成一個表明,以此為例:
//這個類對應的表名為:UserData_Table,這是作者在實踐中得出來的
}
(6)具體使用
UserData userData = new UserData();
ModelAdapter adapter = FlowManager.getModelAdapter(UserData.class);
userData.id = 1;//這一行必須加,必須指定id,后面才能根據id修改某一條的數據
userData.name = "張三";
userData.age = 99;
userData.sex = true;
adapter.insert(userData);//插入
adapter.delete(userData);//刪除
adapter.update(userData);//修改
//修改的時候的代碼
UserData userData = new UserData();
userData.id = 1;
userData.name = "9999";
userData.update();//只有繼承了BaseModel才能用這個方法,否則調用這個方法adapter.update(userData);
//再來點福利,update高級用法,增刪改查都是同理,就不一一列舉了
SQLite.update(UserData.class).set(UserData_Table.name.eq("888")).where(UserData_Table.id.eq(1)).execute();
//UserData_Table就是DBFlow自動生成的表明,在(5)的備注中已經提到了
//查詢
List list = SQLite.select().from(UserData.class).queryList();
(7)數據庫增加字段
7.1 修改數據庫的版本號
public static final int VERSION = 2;
7.2 修改數據庫表結構
@Column
public String content;//增加的字段
7.3 這個時候,需要Make Project一下,Mac版的可以直接commond+F9 ,或者直接點那個按鈕
7.4 在AppDatabase這個數據庫配置類中,添加方法如下:
/**
* 數據庫的修改:
* 1、PatientSession 表結構的變化
* 2、增加表字段,考慮到版本兼容性,老版本不建議刪除字段
*/
@Migration(version = VERSION, database = AppDatabase.class)
public static class Migration2UserData extends AlterTableMigration {
public Migration2UserData(Class table) {
super(table);
}
@Override
public void onPreMigrate() {
addColumn(SQLiteType.TEXT, "content");
}
}
(8)到此,關于DBFlow相關的介紹也就結束了,具體關于內連,外聯,左聯接,右聯接,外鍵,一對多等等,可以查閱官方文檔。
https://agrosner.gitbooks.io/dbflow/content/
總結
以上是生活随笔為你收集整理的Android 数据库 哪个好,目前最好用的安卓数据库,DBFlow使用详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 迷你世界显示未连接服务器成功,迷你世界登
- 下一篇: php改变iframe的src,js动态