基於XML應用MyBatis 自用解析

2021-10-04 06:29:27 字數 2813 閱讀 5789

一: 對映配置檔案

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