一、
tab_user.id,tab_user.name,age,***,address
r.id r_id,r.name r_name,r.userid
這兩個相當於把需要的字段舉例出來,以便後面使用。
比如,根據id使用它,相當於貼上裡面的內容資訊一樣。
select
,from tab_user
left join role r
ontab_user.id=r.userid
二、jdbctype="nvarchar" />
jdbctype="integer" />
這裡的**就是對資料庫裡的欄位名和類的屬性不一致時做處理,裡面的collection就是user裡有role集合。組合關係嘛。
三、做非空判斷--使用,把where寫成主要還是當條件不滿足時不會出現語法錯誤。比如:select * from tab_user where ;
resultmap="baseresultmap">
select
from tab_user
name=#
四、resultmap="baseresultmap">
select
from tab_user
id=#
這裡用到trim:
trim 屬性
prefix:字首覆蓋並增加其內容
suffix:字尾覆蓋並增加其內容
prefixoverrides:字首判斷的條件
suffixoverrides:字尾判斷的條件
通俗點講,prefixoverrides是個標記,prefix這個就是專門覆蓋那個標記的。同理。比如上句,where就是替換and或者or的。
下面的這個更容易理解。
insert into tab_user
id,name,
age,
***,
address,
#,#,
#,#,
#,正確的address,後面不需要逗號了。但是我這裡有,suffixoverrides=「,」找到這個逗號,suffix=")" 將其替換成")"。這樣就**正確了。
五、select * from 表名 where xx in ()這種語法結構的使用:
select
from tab_user
where id in
separator="," close=")">
#一般dao層傳過來的是個集合list,separator是分隔符,item="item"i,tem是集合中的元素物件。
六、標籤,這個在這裡不是注釋的意思。是說明這段**是純文字。比如像這個》(大於號),<(小於號)在這裡就是表示大於號小於號的意思。不是表示尖括號<>的一半。
select
from tab_user
七、當查詢的時候兩個類屬性名完全相同時,
select
,from tab_user
left join role r
ontab_user.id=r.userid
比如我的,角色role類有id,user類也有id。如果使用上面的第二個介紹,按正常想都是:
jdbctype="nvarchar" />
jdbctype="integer" />
這裡面的column="r_id"應該寫成column="id"才是吧。但是這樣不出來的。出來的這個id是user的id。所以我就在定義
的時候給他取了個別名。後面就用的是別名了。剛才注意到了沒有呢。。。
r.id r_id,r.name r_name,r.userid
八、主鍵生成策略:
select seq_emp.nextval as bid from dual
insert into emp
bid,empname,age,***,createtime,salary,
#,#,#,#,#,#
注意bid在**出現就應該不出錯了。就不詳細說,沒意思。
select sys_guid() from dual
insert into student
stuid,stuname,
#,#,
九、insert into emp
bid,empname,age,***,createtime,salary,
select seq_emp.nextval, e.* from
select
#,#,#,#,#
from dual
e
mapper裡的動態sql
1 if id findactiveblogwithtitlelike resulttype blog select from blog where state active test title null and title like 2 choose,when,otherwise id find...
Mybatis基於註解的sql語句
public inte ce 這是基於註解的對映方式,實現對資料的增刪改查,將sql語句直接寫在註解的括號中 這是乙個介面,其不需要類去實現它 下邊分別是插入,刪除,修改,查詢乙個記錄,查詢所有的記錄 insert insert into users name,age values public v...
Sql語句裡的遞迴查詢
以前使用oracle,覺得它的遞迴查詢很好用,就研究了一下sqlserver,發現它也支援在sql裡遞迴查詢 舉例說明 sqlserver2005版本的sql如下 比如乙個表,有id和pid欄位,id是主鍵,pid表示它的上級節點,表結構和資料 create table aaa id int nul...