5 資料庫查詢操作

2021-08-30 07:17:14 字數 1773 閱讀 6496

如果繼承guzzbasedao,可以使用basedao中提供的常用查詢方法進行查詢。

readonlytransession為guzz對外提供的查詢操作入口,獲取方法:

transactionmanager tm = guzzcontext.gettransactionmanager() ;

readonlytransession session = gettransactionmanager().opendelayreadtran() ;

tryfinally

readonlytransession提供按照檢索表示式searchexpression,sql語句compiledsql,以及guzz.xml中配置的sql語句id進行查詢的介面。

searchexpression:

searchexpression類似於hibernate中的criteria,不過功能沒有criteria強大。

compiledsql:

guzz將sql語句進行預編譯生成compiledsql,在預編譯時sql語句允許引數命名和businessname,屬性名替換,進行預編譯的sql和guzz.xml中允許定義的sql規則相同。示例如下:

transactionmanager tm = super.gettransactionmanager() ;

string sql = "update @@" + systemlog.class.getname() + " set @importance = :level where @id = :id" ;

compiledsql cs = tm.getcompiledsqlbuilder().buildcompiledsql(systemlog.class, sql) ;

writetransession session = tm.openrwtran(true) ;

tryfinally

compiledsql為執行緒安全的物件,對於重複執行的sql,建議將編譯好的compiledsql快取以來,避免重複解析。在guzz.xml中定義的sql,在guzz內部就是以compiledsql進行儲存和管理的。

通過guzz.xml中定義的id查詢:

類似ibatis。

writetransession為寫api介面。

transactionmanager tm = super.gettransactionmanager() ;

writetransession session = tm.openrwtran(true) ;

在獲取時,傳入引數是否自動提交事務。true:自動提交;false:手動提交。

如果設定為false,在這執行完操作後,需要呼叫session.commit()或者session.rollback()結束事務。

writetransession只允許通過主鍵進行查詢操作,查詢時從主資料庫操作。其他方法與readonlytransession用法類似。

如果需要執行事務處理,在獲取writetransession時需要關閉自動提交事務: tm.openrwtran(false) ;

隨後針對此writetransession進行任意操作即可,包括從此writetransession建立jdbctemplate執行raw sql,或者建立batcher執行批量操作,在所有操作完成後commit()或者rollback(),guzz將完成多組機器多項操作的分布式事 務。

資料庫查詢操作

假設現在資料庫內有activity表 act activity.objects.get id id,status status 用get方法查詢,查詢不到內容或查詢結果多餘1條的時候會丟擲異常 act activity.objects.filter id id 用filter方法查詢,查詢不到內容,...

資料庫 操作查詢

1 基本連線 基本連線遵循的基本原則 select子句列表中,每個目標列前都要加上基表名稱。from子句應包括所有使用的基表。where子句應定義乙個同等連線。2 內連線 使用比較運算子對錶之間的某些資料進行比較,並列出這些表中與連線條件相匹配的資料行。select 列名 from table1 i...

tp5 資料庫Db查詢操作

data db query select from tf action data db query select from tf action where id and id 1,10 sql db getlastsql 查詢用query。刪除,增加,修改,用execute。data db tabl...