Mybatis 初步了解Example類

2021-10-02 12:36:52 字數 2731 閱讀 5483

1. 什麼是example類

example類指定如何構建乙個動態的where子句. 表中的每個non-blob列可以被包括在where子句中. 例子是展示此類用法的最好方式.

example類可以用來生成乙個幾乎無限的where子句.

example類包含乙個內部靜態類 criteria 包含乙個用 anded 組合在where子句中的條件列表. example類包含乙個 list 屬性,所有內部類criteria中的子句會用 ored組合在一起. 使用不同屬性的 criteria 類允許您生成無限型別的where子句.

建立 criteria 物件 可以使用example類中的 createcriteria() 或者 or() . 如果 criteria 物件是用 createcriteria() 建立的,它會自動為 list 屬性新增乙個 criteria 物件 - 這使得它更容易寫乙個簡單的where子句, 如果您不需要 or 或者其他幾個子句組合的話. 用 or(criteria criteria) 方法建立 criteria 物件, 方法裡的 criteria 物件會被新增進 criteria 物件的列表中.

重要 我們推薦您只使用 or() 方法建立 criteria 物件. 我們相信這種方法使**更有可讀性.

2. criterion

criterion是最基本、最底層的where條件,用於字段級的篩選,field用於指代欄位名字

列舉如下:

只有乙個條件,不需要其他參考值

field is null

field is not null

與乙個參考值進行算數運算

field > value

field >= value

field = value

field <> value

field <= value

field < value

與乙個參考值進行模糊查詢,參值中的%,?只能在構造查詢條件時手動指定。

field like value

field not like value

介於兩個參考值之間

field between value and secondvalue

在或不在乙個參考值集合中,item來自於value集合

field in (item, item, item,…)

field not in (item, item, item, …)

mybatis generator會為每個字段產生如上的criterion,如果表的字段比較多,產生的example類會十分龐大。理論上通過example類可以構造你想到的任何篩選條件。

3. criteria

包含乙個cretiron的集合,每乙個criteria物件內包含的cretiron之間是由and連線的,是邏輯與的關係。

4. oredcriteria

example內有乙個成員叫oredcriteria,是criteria的集合,就想其名字所預示的一樣,這個集合中的criteria是由or連線的,是邏輯或關係。oredcriteria就是ored criteria。

or()方法,會產生乙個新的criteria物件,新增到oredcriteria中,並返回這個criteria物件,從而可以鏈式表達,為其新增criterion。

查詢條件1:a=? and (b=? or c=?) 不支援

查詢條件2:(a=? and b=?) or (a=? and c=?) 支援

5. 用法

testtableexample example = new testtableexample();

example.createcriteria().andfield1equalto(5);

testtableexample example = new testtableexample();

example.or().andfield1equalto(5);

在上面的例子中, 動態生成的where子句是:

where field1 = 5

testtableexample example = new testtableexample();

example.or()

.andfield1equalto(5)

.andfield2isnull();

example.or()

.andfield3notequalto(9)

.andfield4isnotnull();

list field5values = new arraylist();

field5values.add(8);

field5values.add(11);

field5values.add(14);

field5values.add(22);

example.or()

.andfield5in(field5values);

example.or()

.andfield6between(3, 7);

在上面的例子中, 動態生成的where子句是:

where (field1 = 5 and field2 is null) 

or (field3 <> 9 and field4 is not null)

or (field5 in (8, 11, 14, 22))

or (field6 between 3 and 7)

C Boost 初步了解

boost是由c 標準委員會成員發起 眾多c 業界高人參與設計並實現的乙個涉及面廣 質量高且業已廣泛使用的c 標準後備庫,其中 tr1已經被納入c 0x標準庫。不論從風格和內容組織上講,都可以認為boost專案是c 標準庫的延伸。截止到boost 1.43版本,boost專案擁有大約100個用途廣泛...

jquery 初步了解

js 建立函式有以下三種方法 1 函式關鍵字 function foo x 2 匿名函式 var func function x 3 建構函式 var func new function x alert x 建構函式每次執行時都解析函式主題 頻繁呼叫建構函式效率很低 並且建構函式不能遞迴使用 關鍵字...

Tomcat初步了解

http協議預設的埠號為80,如果伺服器的埠號為80,則url中的埠號可以省略,否則必須使用冒號加埠號指明埠。tomcat的埠號可在g soft apache tomcat 7.0.59 conf server.xml檔案中配置 訪問本機tomcat伺服器的方式 2.3.http 本機ip 8080...