一: 對映配置檔案
<?xml version="1.0" encoding="utf-8"?>
select * from user
頭部宣告
標籤頂級元素
parametertype :取值可以是基本型別,引用型別(例如:string 型別),還可以是實體類型別(pojo 類)
基礎crud
select * from user where id = #
insert into user(username,***) values(#,#)
select last_insert_id();
insert into user(username,***) values(#,#)
update user set username=#,***=# where id=#
delete from user where id = #
select * from user where username like #
select * from user where username like '%$%'
mybatis輸出結果封裝
一: resulttype
select count(*) from user;
二: resultmap
resultmap 資料庫表列名和實體類屬性名稱不一致時可以建立對應關係。實現封裝
對映配置:
select * from user
collection : 多用於 ?對多查詢 對映乙個物件集合
mybatis動態sql語句
一:標籤
select * from user where 1=1
and username like #
標籤的 test 屬性中寫的是物件的屬性名,如果是包裝類的物件要使用 ognl 表示式的寫法
二:標籤
select * from user
and username like #
採用
標籤,可以簡化 where 1=1 的條件拼裝
三:標籤
四: 簡化編寫的 sql 片段
多表查詢一對一(多對一)
實體類: account類和user類
public class user implements serializable
public class account implements serializable
一: 一對一查詢
方式一
//建立乙個accountuser 類 繼承 user 類
public class accountuser extends account implements serializable
select a.*,u.username,u.address from account a,user u where a.uid =u.id;
方式二
//在account 類中加入 user 類物件作為屬性
public class account implements serializable
//將dao方法中findall()的返回值修改為list,account中包含user物件封裝使用者資訊
select u.*,a.id as aid,a.uid,a.money from account a,user u where a.uid =u.id;
二: 一對多查詢
實體類: account類 和 包含account物件集合的user類
public class user implements serializable
public class account implements serializable
多表查詢多對多
多對多查詢使用 一張中間表
實體類包含role物件集合
public class user implements serializable
實體類role包含user物件集合
public class role implements serializable
role對映檔案 : 查詢所有角色 (user對映檔案查詢所有使用者同寫法)
select u.*,r.id as rid,r.role_name,r.role_desc from role r
left outer join user_role ur on r.id = ur.rid
left outer join user u on u.id = ur.uid
mybatis快取
一: 一級快取
一級快取是 sqlsession 範圍的快取,當呼叫sqlsession的修改,新增,刪除,commit(),close()等方法時,就會清空一級快取
在同乙個sqlsession 下,查詢相同的資料第一次查詢後不請客快取,之後都是呼叫第一次的查詢結果
二: 二級快取
Mybatis返回自增主鍵的xml方式
環境 mysql mybatis xml方式 只需在原insert標籤中新增兩個屬性,usegeneratedkeys 和 keyproperty 將 usegeneratedkeys 設為 true,keyproperty 的值設為 資料表對應do的屬性名即可 如一點坑 修改了insert方法,但...
mybatis基於XML配置的動態SQL語句
當if標籤的test成立時,就把if標籤中的內容,拼接到上邊的sql語句的後邊 select from user where 1 1 and username and 用於 多條件不確定 查詢時,確定在拼接sql語句時,是否把 and 關鍵字給替換為 where 使用while標籤時,第乙個if標籤...
Mybatis 2 基於XML的增刪改查
public class user insert into users name,age values delete from users where id update users set name age where id select from users where id select fr...