Mybatis学习笔记5:Mybatis映射文件-select处理

1、select返回List

1220447-20200307105408730-1164941641.png
1220447-20200307105501042-2067128088.png
1220447-20200307105627343-338920723.png

<!-- public List<Employee> getEmpsByLastNameLike(String lastName); -->
    <!--resultType:如果返回的是一个集合,要写集合中元素的类型  -->
    <select id="getEmpsByLastNameLike" resultType="com.atguigu.mybatis.bean.Employee">
        select * from tbl_employee where last_name like #{lastName}
    </select>

2、select返回Map

1220447-20200307110113860-1638790219.png
1220447-20200307110256145-1707130337.png
1220447-20200307110318842-1077837077.png

以上是单条记录封装,多条记录如下:
1220447-20200307110459748-1497925628.png
1220447-20200307110645895-460996971.png
Map中的key怎么知道要用主键来做呢?
1220447-20200307110729579-734819668.png
1220447-20200307110906489-973200211.png
1220447-20200307111000982-1045901170.png
1220447-20200307111106655-1118375029.png
1220447-20200307111129264-1017827693.png

<!--public Map<Integer, Employee> getEmpByLastNameLikeReturnMap(String lastName);  -->
    <select id="getEmpByLastNameLikeReturnMap" resultType="com.atguigu.mybatis.bean.Employee">
        select * from tbl_employee where last_name like #{lastName}
    </select>
 
    <!--public Map<String, Object> getEmpByIdReturnMap(Integer id);  -->
    <select id="getEmpByIdReturnMap" resultType="map">
        select * from tbl_employee where id=#{id}
    </select>

3、自定义结果映射规则resultMap

1220447-20200307112849356-358803826.png
1220447-20200307113051441-2004721933.png

<mapper namespace="com.atguigu.mybatis.dao.EmployeeMapperPlus">

    <!--自定义某个javaBean的封装规则
    type:自定义规则的Java类型
    id:唯一id方便引用
      -->
    <resultMap type="com.atguigu.mybatis.bean.Employee" id="MySimpleEmp">
        <!--指定主键列的封装规则
        id定义主键会底层有优化;
        column:指定哪一列
        property:指定对应的javaBean属性
          -->
        <id column="id" property="id"/>
        <!-- 定义普通列封装规则 -->
        <result column="last_name" property="lastName"/>
        <!-- 其他不指定的列会自动封装:我们只要写resultMap就把全部的映射规则都写上。 -->
        <result column="email" property="email"/>
        <result column="gender" property="gender"/>
    </resultMap>
    
    <!-- resultMap:自定义结果集映射规则;  -->
    <!-- public Employee getEmpById(Integer id); -->
    <select id="getEmpById"  resultMap="MySimpleEmp">
        select * from tbl_employee where id=#{id}
    </select>

......
</mapper>

4、一对一

Employee

@Alias("emp")
public class Employee {
    
    private Integer id;
    private String lastName;
    private String email;
    private String gender;
    private Department dept;

Department


public class Department {
    
    private Integer id;
    private String departmentName;
    private List<Employee> emps;

1220447-20200307162017283-791984094.png
1220447-20200307162121726-1650202946.png

1220447-20200307162529273-867151453.png

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xidianzxm

您的打赏是我继续创作的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值