映射文件-select

resultType

1.select返回一个List集合

在映射文件中配置返回List集合的方法的sql映射

resultType:依旧是写需要封装的javaBean,而不是写List集合

<!--public List<Employee> getEmplsNameLike(String lastName);  -->   
     <select id="getEmplsNameLike" resultType="emp">
		select * from tbl_employee where last_name like #{lastName}
     </select>

测试代码:

	@Test
	void test06() throws IOException {
		SqlSessionFactory sqlSessionFactory = getSqlSessionFactory();

		SqlSession openSession = sqlSessionFactory.openSession();

		try {
			EmployeeMapper mapper = openSession.getMapper(EmployeeMapper.class);

			// 模糊查找名字为s开头的员工信息
			List<Employee> empls = mapper.getEmplsNameLike("s%");

			for (Employee employee : empls) {
				System.out.println(employee);
			}

		} finally {
			openSession.close();
		}
	}

查找结果:

 2.select封装Map

①单条数据封装成Map

映射文件配置:

<!-- public Map<String, Object> getEmpByMapOne(Integer id); -->
	<select id="getEmpByMapOne" resultType="map">
		select * from tbl_employee where id = #{id}
	</select>

测试代码:

        @Test
	void test07() throws IOException {
		SqlSessionFactory sqlSessionFactory = getSqlSessionFactory();

		SqlSession openSession = sqlSessionFactory.openSession();

		try {
			EmployeeMapper mapper = openSession.getMapper(EmployeeMapper.class);

			// 查询id为4的员工信息,返回一个map
			Map<String, Object> empByMap = mapper.getEmpByMapOne(4);
			System.out.println(empByMap);
		} finally {
			openSession.close();
		}
	}

查询结果:

②多条记录封装一个成Map

	<!-- public Map<Integer, Employee> getEmpsByNameLikeReturnMap(String lastName); -->
	<select id="getEmpsByNameLikeReturnMap" resultType="map">
		select * from tbl_employee where last_name like #{lastName}
	</select>

测试代码:

使用MapKey指定key

        @MapKey("id")
	public Map<Integer, Employee> getEmpsByNameLikeReturnMap(String lastName);

 

        @Test
	void test08() throws IOException {
		SqlSessionFactory sqlSessionFactory = getSqlSessionFactory();

		SqlSession openSession = sqlSessionFactory.openSession();

		try {
			EmployeeMapper mapper = openSession.getMapper(EmployeeMapper.class);

			Map<Integer, Employee> map = mapper.getEmpsByNameLikeReturnMap("ss%");

			System.out.println(map);
		} finally {
			openSession.close();
		}
	}

查询结果:


resultMap:自定义结果集映射规则

结构:

<resultMap type id/> :自定义某个javaBean的封装规则

type:该javaBean的类型

id:唯一标识,方便引用

    <resultMap type="cn.it.mybatis.bean.Employee" id="MyEmp">
        <id column="" property=""/>
        <result column="" property=""/>
    </resultMap>

<id column property/>:id标签用于主键列,因为MyBatis的底层会优化id标签的主键

column :哪一列

property:这列封装为JavaBean的哪个属性

<result  column property/>:用于其他列

推荐:只要写resultMap就把全列都映射(如果其他列不写的话,会自动映射)


测试:

映射文件配置:

<!-- 自定义结果集映射规则-->
	<resultMap type="cn.it.mybatis.bean.Employee" id="MyEmp">
		<!-- id:主键的映射规则 -->
		<id column="id" property="id"/>
		<!-- result:其他列的映射规则 -->
		<result column="last_name" property="lastName"/>
		<result column="email" property="email"/>
		<result column="gender" property="gender"/>
	</resultMap>
	
	<!-- public Employee getEmpById(Integer id); -->
	<select id="getEmpById" resultMap="MyEmp">
		 select * from tbl_employee where id = #{id}
	</select>

测试代码:

@Test
	void test09() throws IOException {
		SqlSessionFactory sqlSessionFactory = getSqlSessionFactory();

		SqlSession openSession = sqlSessionFactory.openSession();

		try {
			EmployeeMapperPlus mapper = openSession.getMapper(EmployeeMapperPlus.class);
			
			Employee employee = mapper.getEmpById(2);

			System.out.println(employee);

		} finally {
			openSession.close();
		}
	}

查询结果:

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值