MyBatis實現萬能Map和模糊查詢
我們在上一節博文里面將到利用Mybatis實現CRUD操作的時候,我們在數據庫表中新增一條數據是這樣操作的:
實體類對象的字段有:
package com.hpf.bean;import lombok.AllArgsConstructor;import lombok.Data;import lombok.NoArgsConstructor;//編寫實體類User@Data@AllArgsConstructor@NoArgsConstructorpublic class User { private Long id; private String username; private String password;}
新增一條記錄的xml文件配置內容為:
<insert parameterType='com.hpf.bean.User'>insert into userinfo (id,username,password) values (#{id},#{username},#{password})</insert>
其中,#后帶的字段名都是我們實體類用戶類里面一模一樣的字段名。
接著我們再來試試用Map的方式實現用戶記錄的新增:
<insert parameterType='Map'>insert into userinfo (id,username,password) values (#{id},#{user},#{pwd})</insert>
測試部分:
@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(); }
說明:我們業務相關的參數需要哪些字段內容,我們就往map里面傳哪些字段內容就行。
模糊查詢要求查詢下表內為李性的用戶信息:
package com.hpf.dao;import com.hpf.bean.User;import java.util.List;import java.util.Map;//這個接口實現的是對于用戶的相關操作public interface UserDao { //模糊查詢用戶信息 List<User> getUserByLike(Map map);}
<select 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); }
結果如圖所示:
說明:模糊查詢在這種方式下其實還有一種寫法也可以得出結果,但是為了防止sql注入問題,我們不建議如下的寫法:
<select parameterType='Map' resultType='com.hpf.bean.User'>select * from userinfo where username like #{value}'%'</select>
到此這篇關于MyBatis實現萬能Map和模糊查詢的文章就介紹到這了,更多相關MyBatis 萬能Map和模糊查詢內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!
相關文章: