12、mybatis返回map单条及多条记录
程序员文章站
2022-07-01 08:01:48
...
文章目录
1、mybatis返回map单条记录
1)、EmployeeMapper接口
package com.mi.dao;
import com.mi.pojo.Employee;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
public interface EmployeeMapper {
//返回Map,key就是列名,value就是对应的值
public Map<String,Object> getEmployeeMapById(Integer id);
}
2)、EmployeeMapper.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">
<!--指定为接口的全类名-->
<mapper namespace="com.mi.dao.EmployeeMapper">
<!--返回Map-->
<select id="getEmployeeMapById" resultType="map">
select * from employee where id = #{id}
</select>
</mapper>
3)、Test
@Test
public void testGetMapById() throws IOException {
//1、获取SqlSessionFactory对象
SqlSessionFactory sqlSessionFactory = getSqlSessionFactory();
//2、获取Sqlsesion对象
SqlSession sqlSession = sqlSessionFactory.openSession();
try {
//3、获取接口的实现类对象
//会为接口自动创建一个代理对象,代理对象去执行增删改查方法
EmployeeMapper mapper = sqlSession.getMapper(EmployeeMapper.class);
Map map = mapper.getEmployeeMapById(3);
System.out.println(map);
}finally {
sqlSession.close();
}
}
4)、测试结果
{gender=0, last_name=jerry, id=3}
2、mybatis返回map多条记录
文章目录
5)、EmployeeMapper
package com.mi.dao;
import com.mi.pojo.Employee;
import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
public interface EmployeeMapper {
//返回多条记录封装成一个map,key是这条记录的主键,value是记录封装后的javabean
//告诉mybatis封装这个map的时候使用哪个属性作为主键
@MapKey("id")
public Map<Integer,Employee> getEmployeeMapByName(String lastName);
}
6)、EmployeeMapper.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">
<!--指定为接口的全类名-->
<mapper namespace="com.mi.dao.EmployeeMapper">
<!--返回多条Map记录-->
<select id="getEmployeeMapByName" resultType="com.mi.pojo.Employee">
select * from employee where last_name like #{lastName}
</select>
</mapper>
7)、Test
@Test
public void getEmployeeMapByName() throws IOException {
//1、获取SqlSessionFactory对象
SqlSessionFactory sqlSessionFactory = getSqlSessionFactory();
//2、获取Sqlsesion对象
SqlSession sqlSession = sqlSessionFactory.openSession();
try {
//3、获取接口的实现类对象
//会为接口自动创建一个代理对象,代理对象去执行增删改查方法
EmployeeMapper mapper = sqlSession.getMapper(EmployeeMapper.class);
Map map = mapper.getEmployeeMapByName("%e%");
System.out.println(map);
}finally {
sqlSession.close();
}
}
8)、测试结果
{3=Employee{id=3, lastName='jerry', gender='0'}, 4=Employee{id=4, lastName='kite', gender='1'}}
Process finished with exit code 0
上一篇: MyBatis查询返回Map类型数据
下一篇: 自定义mybatis map返回类型