詳解Mybatis中萬(wàn)能的Map和模糊查詢(xún)寫(xiě)法
假設(shè),我們的實(shí)體類(lèi),或者數(shù)據(jù)庫(kù)中的表,字段或參數(shù)過(guò)多,我們接口參數(shù)以前用的是實(shí)體類(lèi),現(xiàn)在考慮使用下Map!
接口:
//萬(wàn)能的Mapint addUser2(Map<String,Object> map);
mapper.xml:
<!--Map中的key--><insert parameterType='map'> insert into mybatis.user (id,name,pwd) values (#{userid},#{userName},#{passWord});</insert>
測(cè)試方法:
@Testpublic void addUser2(){ SqlSession sqlSession = MybatisUtils.getSqlSession(); UserMapper mapper = sqlSession.getMapper(UserMapper.class); Map<String, Object> map = new HashMap<>(); map.put('userid',5); map.put('userName','Hello'); map.put('passWord','2222333'); mapper.addUser2(map); sqlSession.commit(); sqlSession.close();}
現(xiàn)在通過(guò)Map傳遞參數(shù),直接再sql中取出key即可!
而以前對(duì)象傳遞參數(shù),需要再sql取對(duì)象相對(duì)應(yīng)的屬性名才行!
而以前對(duì)象傳遞參數(shù),需要再sql取對(duì)象相對(duì)應(yīng)的屬性名才行!
只有一個(gè)基本類(lèi)型參數(shù)的情況下,可以直接在sql中取到!(parameterType不寫(xiě)都可以)
反正多個(gè)參數(shù)用Map,或者注解(后面記錄的文章會(huì)說(shuō)到)!
2、模糊查詢(xún)寫(xiě)法模糊查詢(xún)?cè)趺磳?xiě)?
1.java代碼執(zhí)行的時(shí)候傳遞通配符% %(比較安全,能防止sql注入,推薦)
List<User> userList = mapper.getUserLike('%李%');
2.在sql拼接中使用通配符!(不能防sql注入)
<select resultType='com.kuang.pojo.User'> select * from mybatis.user where name like '%'#{value}'%'</select>
以上就是詳解Mybatis中萬(wàn)能的Map和模糊查詢(xún)寫(xiě)法的詳細(xì)內(nèi)容,更多關(guān)于Mybatis Map和模糊查詢(xún)寫(xiě)法的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!
相關(guān)文章:
1. MySQL實(shí)現(xiàn)數(shù)據(jù)批量更新功能詳解2. DB2的高可用性和災(zāi)難恢復(fù)概述3. 快速解決mysql導(dǎo)出scv文件亂碼、躥行的問(wèn)題4. SQLite3中自增主鍵相關(guān)知識(shí)總結(jié)5. oracle8i-系統(tǒng)結(jié)構(gòu)的組件(入門(mén)篇)6. DB2 V9.5工作負(fù)載管理之閾值(THRESHOLD)7. mybatis 通過(guò)攔截器打印完整的sql語(yǔ)句以及執(zhí)行結(jié)果操作8. SQL 中的For Xml Path詳解9. SQLite教程(十二):鎖和并發(fā)控制詳解10. access不能打開(kāi)注冊(cè)表關(guān)鍵字錯(cuò)誤處理方法(80004005錯(cuò)誤)
