數據庫之greenDAO 的使用
- 官方主頁: https://github.com/greenrobot/greenDAO
- 配置: AndroidStudio需要添加以下依賴
- compile ‘de.greenrobot:greendao:2.1.0’
- compile ‘de.greenrobot:greendao-generator:2.1.0’
- 用途: 操作數據庫
優點:
性能最大化,內存開銷最小化
- 易於使用的API
- 爲Android進行高度優化
- 使用步驟
1. 創建自定義的DAOGenerater,指定數據庫相關配置並生成相關類
public class CustomDAOGenerater {
public static void main(String[] args) throws Exception {
// 第一個參數爲數據庫版本
//第二個參數爲數據庫的包名
Schema schema = new Schema(1, "com.alpha.db");
// 創建表,參數爲表名
Entity entity = schema.addEntity("Info");
// 爲表添加字段
entity.addIdProperty();// 該字段爲id
entity.addStringProperty("name");// String類型字段
entity.addIntProperty("age");//Int類型字段
entity.addStringProperty("tel");// String類型字段
// 生成數據庫相關類
//第二個參數指定生成文件的本次存儲路徑,AndroidStudio工程指定到當前工程的java路徑
new DaoGenerator().generateAll(schema, "C:\\Users\\Alpha\\AndroidStudioProjects\\GreenDaoDemo\\app\\src\\main\\java");
}
}
2. 在Application中通過DaoMaster.DevOpenHelper初始化數據庫
// 該初始化過程最好放在Application中進行,避免創建多個Session
private void setupDatabase() {
// 通過 DaoMaster 的內部類 DevOpenHelper創建數據庫
// 注意:默認的 DaoMaster.DevOpenHelper 會在數據庫升級時,刪除所有的表
// 所以,在正式的項目中,你還應該做一層封裝,來實現數據庫的安全升級。
/**
* @param context : Context
* @param name : 數據庫名字
* @param factory : CursorFactroy
*/
DaoMaster.DevOpenHelper helper = new DaoMaster.DevOpenHelper(this, "student.db", null);
// 獲取數據庫
SQLiteDatabase database = helper.getWritableDatabase();
// 獲取DaoMaster
DaoMaster daoMaster = new DaoMaster(database);
// 獲取Session
DaoSession daoSession = daoMaster.newSession();
// 獲取對應的表的DAO對象
InfoDao dao = daoSession.getInfoDao();
}
3. 獲取數據庫的DAO對象,即可進行增刪改查的操作
// 增
dao.insert(new Info(null, "zhangsan", 12, "13112345678"));
// 刪
dao.deleteByKey(1L);
// 改
Info info = new Info(3L, "趙琦", 78, "18812348888");
dao.update(info);
// 查
QueryBuilder<Info> builder = dao.queryBuilder();
builder.where(InfoDao.Properties.Name.eq("lisi"));
Query<Info> build = builder.build();
List<Info> list = build.list();