MyBatis實(shí)現(xiàn)萬(wàn)能Map和模糊查詢
萬(wàn)能Map
我們?cè)谏弦还?jié)博文里面將到利用Mybatis實(shí)現(xiàn)CRUD操作的時(shí)候,我們?cè)跀?shù)據(jù)庫(kù)表中新增一條數(shù)據(jù)是這樣操作的:
實(shí)體類對(duì)象的字段有:
package com.hpf.bean; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; //編寫實(shí)體類User @Data @AllArgsConstructor @NoArgsConstructor public class User { private Long id; private String username; private String password; }
新增一條記錄的xml文件配置內(nèi)容為:
<insert id="addUser" parameterType="com.hpf.bean.User"> insert into userinfo (id,username,password) values (#{id},#{username},#{password}) </insert>
其中,#后帶的字段名都是我們實(shí)體類用戶類里面一模一樣的字段名。
接著我們?cè)賮?lái)試試用Map的方式實(shí)現(xiàn)用戶記錄的新增:
<insert id="addUserByMap" parameterType="Map"> insert into userinfo (id,username,password) values (#{id},#{user},#{pwd}) </insert>
測(cè)試部分:
@Test public void testAddUserByMap(){ SqlSession sqlSession = MyBatisUtils.getSqlSession(); UserDao mapper = sqlSession.getMapper(UserDao.class); Map<String,Object> map = new HashMap<>(); map.put("id", 6L); map.put("user", "張三"); map.put("pwd", "666"); int res = mapper.addUserByMap(map); sqlSession.commit(); sqlSession.close(); }
說(shuō)明:我們業(yè)務(wù)相關(guān)的參數(shù)需要哪些字段內(nèi)容,我們就往map里面?zhèn)髂男┳侄蝺?nèi)容就行。
模糊查詢
要求查詢下表內(nèi)為李性的用戶信息:
package com.hpf.dao; import com.hpf.bean.User; import java.util.List; import java.util.Map; //這個(gè)接口實(shí)現(xiàn)的是對(duì)于用戶的相關(guān)操作 public interface UserDao { //模糊查詢用戶信息 List<User> getUserByLike(Map map); }
<select id="getUserByLike" parameterType="Map" resultType="com.hpf.bean.User"> select * from userinfo where username like #{value} </select>
@Test public void testGetUserByLike(){ SqlSession sqlSession = MyBatisUtils.getSqlSession(); UserDao mapper = sqlSession.getMapper(UserDao.class); Map<String,Object> map = new HashMap<>(); map.put("value", "李%"); List<User> userByLike = mapper.getUserByLike(map); for(User user:userByLike) System.out.println(user); }
結(jié)果如圖所示:
說(shuō)明:模糊查詢?cè)谶@種方式下其實(shí)還有一種寫法也可以得出結(jié)果,但是為了防止sql注入問(wèn)題,我們不建議如下的寫法:
<select id="getUserByLike" parameterType="Map" resultType="com.hpf.bean.User"> select * from userinfo where username like #{value}"%" </select>
到此這篇關(guān)于MyBatis實(shí)現(xiàn)萬(wàn)能Map和模糊查詢的文章就介紹到這了,更多相關(guān)MyBatis 萬(wàn)能Map和模糊查詢內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解spring cloud中使用Ribbon實(shí)現(xiàn)客戶端的軟負(fù)載均衡
這篇文章主要介紹了詳解spring cloud中使用Ribbon實(shí)現(xiàn)客戶端的軟負(fù)載均衡,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-01-01Spring Boot集成Resilience4J實(shí)現(xiàn)限流/重試/隔離
在Java的微服務(wù)生態(tài)中,對(duì)于服務(wù)保護(hù)組件,像springcloud的Hystrix,springcloud?alibaba的Sentinel,以及當(dāng)Hystrix停更之后官方推薦使用的Resilience4j,所以本文給大家介紹了Spring Boot集成Resilience4J實(shí)現(xiàn)限流/重試/隔離,需要的朋友可以參考下2024-03-03java并發(fā)編程專題(二)----如何創(chuàng)建并運(yùn)行java線程
這篇文章主要介紹了java并發(fā)編程如何創(chuàng)建并運(yùn)行java線程,文中講解非常詳細(xì),示例代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下2020-06-06mybatis Map查詢結(jié)果下劃線轉(zhuǎn)駝峰的實(shí)例
這篇文章主要介紹了mybatis Map查詢結(jié)果下劃線轉(zhuǎn)駝峰的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-09-09java.lang.NullPointerException出現(xiàn)的幾種原因及解決方案
這篇文章主要介紹了java.lang.NullPointerException出現(xiàn)的幾種原因及解決方案,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-05-05基于 SpringBoot 實(shí)現(xiàn) MySQL 讀寫分離的問(wèn)題
這篇文章主要介紹了基于 SpringBoot 實(shí)現(xiàn) MySQL 讀寫分離的問(wèn)題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-02-02修改idea的這些啟動(dòng)參數(shù),令你的idea健步如飛
這篇文章主要介紹了修改idea的這些啟動(dòng)參數(shù),令你的idea健步如飛~具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-01-01詳談Java靜態(tài)動(dòng)態(tài)的問(wèn)題
下面小編就為大家?guī)?lái)一篇詳談Java靜態(tài)動(dòng)態(tài)的問(wèn)題。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-09-09SpringBoot項(xiàng)目集成日志的實(shí)現(xiàn)方法
這篇文章主要介紹了SpringBoot項(xiàng)目集成日志的實(shí)現(xiàn)方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-02-02