Mybatis 特殊SQL的執行

2022-09-28 04:30:10 字數 2298 閱讀 3182

1.模糊查詢

/**

* 測試模糊查詢

* @param

mohu

* @return

*/list

testmohu(@param("mohu") string mohu);

<

select

id="testmohu"

resulttype

="user"

>

select * from t_user where username like "%"#"%"

select

>

2.處理批量刪除

在進行批量刪除的時候必須使用${},因為${}是拼接,在sql執行時引數不帶有引號

而使用#{}時,#{}是佔位符賦值操作,在此操作下sql語句引數帶有引號,sql報錯

介面方法:

/**

* 處理批量刪除

*/int deletemore(@param("ids") string ids);

<

delete

id="deletemore"

>

delete from student where id in ($)

delete

>

測試類方法:

@test

public

void

deletemore()

3.動態設定表名

當一張表中的資料太多時,我們將一張大表分成幾張小的表來共同儲存資料(表中的屬性都是一樣的)

當要選用其中某一張表時,就會用到動態設定表明的操作

當使用到動態設定表明時要使用${}來拼接sql語句 這樣sql語句再能正確執行;而使用#{}時因為帶有引號的原因,sql會報錯

介面方法:

/**

* 動態設定表名

* @param

tablename

* @return

*/list

selectstudenttable(@param("tablename") string tablename);

<

select

id="selectstudenttable"

resulttype

="student"

>

select * from $

select

>

測試類方法:

@test

public

void

selectstudenttable()

sqlsession.close();

}

4.新增功能獲取自增的主鍵

t_clazz(clazz_id,clazz_name)

t_student(student_id,student_name,clazz_id)

1、新增班級資訊

2、獲取新新增的班級的id

3、為班級分配學生,即將某學的班級id修改為新新增的班級的id

為了獲取新增的資訊中的自增主鍵

介面方法:

/**

* 新增功能獲取自增主鍵

* @param

student

*/void insertstudent(student student);

<

insert

id="insertstudent"

usegeneratedkeys

="true"

keyproperty

="id"

>

insert into student values (null,#,#,#)

insert

>

測試類方法:

@test

public

void

insertstudent()

mybatis執行任意SQL

一 用乙個方法可靈活方便執任意自定義sql,不需要在xml或介面中宣告,以下是實現,採用註解,xml沒測試,應該類似。1 宣告乙個介面,裡面包括乙個超級sql方法 public inte ce sqldao list sql string sql,param param map param 2呼叫m...

mybatis中sql中的特殊符號

1.prefix 在trim標籤內sql語句加上字首。suffix 在trim標籤內sql語句加上字尾。suffixoverrides 指定去除多餘的字尾內容,如 suffixoverrides 去除trim標籤內sql語句多餘的字尾 prefixoverrides 指定去除多餘的字首內容 2.下面...

MyBatis特殊字元

在 mybatis 中 如果見到以下表示,不要慌張,她們代表一些特殊字元。小於號 大於號 與 單引號 雙引號 ex select distinct t.token,t.type,t.userid from notific n left join provider s on s.code n.rece...