天天看點

Mybatis系列教材 (十一)- 動态SQL - mybatis bind 标簽例子

步驟1:先運作,看到效果,再學習

步驟2:模仿和排錯

步驟3:bind标簽

步驟 1 : 先運作,看到效果,再學習

老規矩,先下載下傳下載下傳區(點選進入)的可運作項目,配置運作起來,确認可用之後,再學習做了哪些步驟以達到這樣的效果。

步驟 2 : 模仿和排錯

在確定可運作項目能夠正确無誤地運作之後,再嚴格照着教程的步驟,對代碼模仿一遍。 

模仿過程難免代碼有出入,導緻無法得到期望的運作結果,此時此刻通過比較正确答案 ( 可運作項目 ) 和自己的代碼,來定位問題所在。 

采用這種方式,學習有效果,排錯有效率,可以較為明顯地提升學習速度,跨過學習路上的各個檻。 

推薦使用diffmerge軟體,進行檔案夾比較。把你自己做的項目檔案夾,和我的可運作項目檔案夾進行比較。 

這個軟體很牛逼的,可以知道檔案夾裡哪兩個檔案不對,并且很明顯地标記出來 

這裡提供了綠色安裝和使用教程:diffmerge 下載下傳和使用教程

步驟 3 : bind标簽

bind标簽就像是再做一次字元串拼接,友善後續使用

如本例,在模糊查詢的基礎上,把模糊查詢改為bind标簽。

  • Product.xml
  • TestMybatis.java

<?xml version=

"1.0"

encoding=

"UTF-8"

?>

<!DOCTYPE mapper

PUBLIC 

"-//mybatis.org//DTD Mapper 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-mapper.dtd"

>

<mapper namespace=

"com.how2java.pojo"

>

<!-- 本來的模糊查詢方式 -->

<!--         <select id=

"listProduct"

resultType=

"Product"

> -->

<!--             select * from   product_  where name like concat(

'%'

,#{

},

'%'

) -->

<!--         </select> -->

<select id=

"listProduct"

resultType=

"Product"

>

<bind name=

"likename"

value=

"'%' + name + '%'"

/>

select * from   product_  where name like #{likename}

</select>

</mapper>

package

com.how2java;

import

java.io.IOException;

import

java.io.InputStream;

import

java.util.HashMap;

import

java.util.List;

import

java.util.Map;

import

org.apache.ibatis.io.Resources;

import

org.apache.ibatis.session.SqlSession;

import

org.apache.ibatis.session.SqlSessionFactory;

import

org.apache.ibatis.session.SqlSessionFactoryBuilder;

import

com.how2java.pojo.Product;

public

class

TestMybatis {

public

static

void

main(String[] args) 

throws

IOException {

String resource = 

"mybatis-config.xml"

;

InputStream inputStream = Resources.getResourceAsStream(resource);

SqlSessionFactory sqlSessionFactory = 

new

SqlSessionFactoryBuilder().build(inputStream);

SqlSession session = sqlSessionFactory.openSession();

Map<String, String> params =

new

HashMap();

params.put(

"name"

"product"

);

List<Product> ps = session.selectList(

"listProduct"

,params);

for

(Product p : ps) {

System.out.println(p);

}

session.commit();

session.close();

}

}

更多内容,點選了解: https://how2j.cn/k/mybatis/mybatis-bind/1116.html