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...