Room SQLite持久層框架

2021-08-22 04:53:52 字數 2083 閱讀 7891

android中提供了sqlite資料庫進行資料的持久化 ,並提供了對應api訪問資料庫,而room框架提供了sqlite資料訪問抽象層,為高效的資料庫訪問層帶來便捷

谷歌官方強烈推薦使用room框架操作sqlite資料庫

首先在build.gradle中新增必要依賴

dependencies
建立實體類user,@entity表示該類對應資料庫中的表,@columninfo後面的name屬性對應資料庫中的欄位名,並實現該實體類的gettersetter方法

@entity

public

class

user

public

void

setuid(int uid)

public string getfirstname()

public

void

setfirstname(string firstname)

public string getlastname()

public

void

setlastname(string lastname)

@override

public string tostring() ';}}

建立實體類對應的daouserdao,完成user的增刪改查(crud)介面定義,@dao註解定義乙個dao層,引數賦值(傳遞)使用:clumn_name進行賦值

@dao

public

inte***ce

userdao

@database(entities = , version = 1, exportschema = false)

public

abstract

class

extends

roomdatabase

new thread(new runnable() 

}).start();

增加,也可以傳乙個user陣列

for (int i = 0; i < 10; i++)
如果報以下錯誤,修改dao層的註解為@insert(onconflict = onconflictstrategy.replace)

android.database.sqlite.sqliteconstraintexception: unique constraint failed: user.uid (code 1555 sqlite_constraint_primarykey)
查詢所有資料

for (user user : db.userdao().getall())
other…

public

class

extends

private

static context context;

private

static

final string database_name = "shellhub";

private

@override

public

void

oncreate()

}).start();

}public

return db_instance;}}

持久層框架

1.spring data jpa實現動態查詢的兩種方法 criteria api 可移植。api並不依賴具體的資料庫,可以根據資料庫型別的不同生成對應資料庫型別的sql,所以其為可移植的。物件導向。criteria api是使用的是各種類和物件如criteriaquery predicate等構建...

持久層框架mybatis

本篇的中心內容,解決以下問題。持久層框架mybatis篇與mybatis plus使用 mybatis 是支援定製化 sql 儲存過程以及高階對映的優秀的持久層框架,其主要就完成 構建sqlsessionfactory過程 對映器的動態 sqlsession的4大物件 sql執行的過程 mybati...

python持久層框架 SQLAlchemy

軟體簡介 sqlalchemy 是乙個python 的sql 工具包以及資料庫物件對映框架。它包含整套企業級持久化模式,專門為高效和高效能的資料庫訪問。示例 from sqlalchemy import column,datetime,string,integer,foreignkey,func f...