DAO介面的基本操作

2021-07-31 14:29:13 字數 3966 閱讀 8663

為 pet 建立資料表,如果資料表存在,則自動忽略

//一般我們都這樣寫

dao.

create

(pet.

class

,false

);

刪除 pet 的資料表

dao.

drop

(pet.

class);

//全部刪掉哦,沒條件的,慎用!!

person p =

newperson()

;p.setname

("peter");

p.setage(22

);dao.

insert

(p);

system.out.

println

(p.getid()

);

person 物件的 id 被自動更新

根據名稱獲取 (如果你的實體宣告了 @name 字段, 字元型主鍵,或者帶唯一性索引的字段)

person p = dao.

fetch

(person.

class

,"peter");

system.out.

println

(p.getid()

);

根據 id 獲取 (如果你的實體宣告了 @id 字段, 數值型主鍵)

person p = dao.

fetch

(person.

class,2

);system.out.

println

(p.getname()

);

@id和@name可以同時存在於乙個pojo類內,但不允許標註在同乙個屬性,畢竟不可以同時是數值型主鍵又是字元型主鍵

person p = dao.

fetch

(person.

class,2

);p.setage(32

);dao.

update

(p)dao.

update

(p,"^age$");

//僅更新age,引數是個正規表示式

// 注意, p至少帶@id/@name/@pk中的一種

dao.

update

(list,

"^age$");

//更新乙個集合也是可以的

// 根據特定條件更新特定字段

dao.

update

(person.

class

, chain.

make

("dead"

,true

), ***.

where

("age"

,">"

,150))

;// 常用的+1更新

dao.

update

(person.

class

, chain.

makespecial

("age"

,"+1").

add(

"location"

,"yvr"

), ***.

where

("name"

,"="

,"wendal"))

;

直接刪物件

dao.

delete

(pet)

;// pet必須帶@id/@name/@pk中的一種或多種

根據名稱刪除 (如果你的實體宣告了 @name 字段). 批量刪除請用clear

dao.

delete

(person.

class

,"peter"

);

根據 id 刪除 (如果你的實體宣告了 @id 字段)

dao.

delete

(person.

class,2

);

直接刪列表. 如果要按條件刪,用dao.clear

dao.

delete

(list)

;

list people = dao.

query

(person.

class

, null)

;

list people = dao.

query

(person.

class

, ***.

where

("name"

,"like"

,"p%"))

;

如果你願意,你完全可以自己實現乙個 condition,來做更複雜靈活的判斷

關於更多的查詢條件的說明,請參看 複雜條件

list people = dao.

query

(person.

class

, ***.

where

("age"

,">",18

), dao.

createpager(2

,4))

;

dao.

clear

(person.

class);

//還是那句,慎用

dao.

clear

(person.

class

,***.

where

("id"

,">",35

));

無論是插入 (insert) 還是更新 (update),你傳入的物件都可以不僅僅是乙個 pojo,你可以傳入:

nutz.dao 會自動替你拆包,對集合成員依次執行相應操作。 對於 map,它會迭代每乙個值。

dao.

func

(person.

class

,"sum"

,"age"

);

dao.

func2

(person.

class

,"min"

,"price"

);

dao介面有乙個create方法,通過它可以讓nutz為你建好資料庫表

dao.create(pet.class, false);

第乙個引數是pojo類, 第二個引數是如果表存在,是不是先刪再重新建,否則就是保持原樣

欄位的詳細定義,例如定義長度

@coldefine(width=1024)

private string data;

強制自定義字段型別

@coldefine(customtype="text", type=coltype.varchar)

private string fu;

新增索引, 類級註解

@tableindexes()})

public class userorder

Dao介面基本操作

插入 insert 一條 sql 插入一條記錄或者多條記錄 插入fastinsert 一條 sql 通過batch插入多條記錄 刪除delete 一條 sql 刪除一條記錄 更新update 一條 sql 更新一條或者多條記錄 獲取fetch 一條 sql 獲取一條記錄 查詢query 一條 sql...

介面的基本定義

介面,屬於乙個特殊的類,而且這個類裡面只有抽象方法與全域性變數。定義介面使用inte ce關鍵字。範例 inte ce a介面的使用原則 範例 實現介面 inte ce a inte ce b class x implements a,b public void get public class i...

介面的基本實現。

目標 介面的基本實現。子類 繼承 父類 實現類 實現 介面 類與類是繼承關係。類與介面是實現關係。介面是被類實現的。實現介面的類稱為 實現類。類實現介面的格式 修飾符 class 實現類名稱 implenments 介面1,介面2,介面3,介面4,介面5.implements 類實現介面的關鍵字。小...