本篇文章为你整理了MyBatis(四):拓展——Map的使用和模糊查询()的详细内容,包含有 MyBatis(四):拓展——Map的使用和模糊查询,希望能帮助你了解 MyBatis(四):拓展——Map的使用和模糊查询。
一、Map的使用
前面我们在Mapper接口的方法中,传入的参数都是一个基本类型或者是一个实体类,那么如果我们需要的参数不止一个但又用不到实体类所有的属性有没有什么更好的办法呢,这里我们就可以用到Map了。
我们还是以具体的操作来进行理解。
1.利用Map实现查询
(1)修改UserMapper接口
1 package com.jms.dao;
3 import java.util.List;
4 import java.util.Map;
6 import com.jms.pojo.User;
8 public interface UserMapper {
9 //利用Map获取User信息
10 User getUserbymap(Map String, Object map);
11 }
(2)修改UserMapper.xml配置文件
?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"
!-- 命名空间namespace对应Mapper接口 --
mapper namespace="com.jms.dao.UserMapper"
!-- id对应接口中的方法 --
select id="getUserbymap" parameterType="Map" resultType="com.jms.pojo.User"
select * from user where id=#{mapid} and username=#{mapname}
/select
/mapper
(3)junit测试
1 @Test
2 public void Select2() {
3 //利用工具类获取SqlSession
4 SqlSession sqlSession = MyBatisUtil.getSqlSession();
5 UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
6 Map String, Object map = new HashMap String, Object ();
7 map.put("mapid", 10000);
8 map.put("mapname", "jms1");
9 User user = userMapper.getUserbymap(map);
10 System.out.println(user);
11 sqlSession.close();
12 }
这里查询的是id为10000,username为jms1的用户信息。
测试结果:
2.总结
至今为止,我们已经有了三种进行参数传递的方式:
1.传递一个基本类型。
2.传递一个实体类。
3.传递一个Map。
二、模糊查询
模糊查询有两种方法:
1.java代码中传递通配符“%%”
(1)修改UserMapper接口
1 package com.jms.dao;
3 import java.util.List;
4 import java.util.Map;
6 import com.jms.pojo.User;
8 public interface UserMapper {
9 //模糊查询获取User信息
10 List User getUsersLike(String value);
11 }
(2)修改UserMapper.xml配置文件
?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"
!-- 命名空间namespace对应Mapper接口 --
mapper namespace="com.jms.dao.UserMapper"
!-- id对应接口中的方法 --
select id="getUsersLike" parameterType="String" resultType="com.jms.pojo.User"
select * from user where username like #{value}
/select
/mapper
(3)junit测试
1 @Test
2 public void SelectLike() {
3 //利用工具类获取SqlSession
4 SqlSession sqlSession = MyBatisUtil.getSqlSession();
5 UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
6 List User users = userMapper.getUsersLike("%jms%");
7 for(User user: users) {
8 System.out.println(user);
10 sqlSession.close();
11 }
测试结果:
2.在SQL语句中拼接通配符“%%”
(1)修改UserMapper接口
与上同。
(2)修改UserMapper.xml配置文件
?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"
!-- 命名空间namespace对应Mapper接口 --
mapper namespace="com.jms.dao.UserMapper"
!-- id对应接口中的方法 --
select id="getUsers" resultType="com.jms.pojo.User"
select id="getUsersLike" parameterType="String" resultType="com.jms.pojo.User"
select * from user where username like "%"#{value}"%"
/select
/mapper
(3)junit测试
1 @Test
2 public void SelectLike() {
3 //利用工具类获取SqlSession
4 SqlSession sqlSession = MyBatisUtil.getSqlSession();
5 UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
6 List User users = userMapper.getUsersLike("jms");
7 for(User user: users) {
8 System.out.println(user);
10 sqlSession.close();
11 }
测试结果:
(本文仅作个人学习记录用,如有纰漏敬请指正)
以上就是MyBatis(四):拓展——Map的使用和模糊查询()的详细内容,想要了解更多 MyBatis(四):拓展——Map的使用和模糊查询的内容,请持续关注盛行IT软件开发工作室。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。