MyBatis框架中Mapper类中方法的返回类型问题解决方案

MyBatis框架中Mapper类中方法的返回类型

1.void 无返回值类型
例如:

public void insertEmp(Employee employee);

在映射文件EmployeeMapper.xml文件中配置

<insert id="insertEmp" parameterType="com.neuedu.entity.Employee" >
            insert into employee(e_name,gender,email) values(#{name},#{gender},#{email})
        </insert>

不用写方法的返回值类型resultType或resultMap

2.Employee 实体类类型

public Employee selectEmp(Integer id);

在映射文件EmployeeMapper.xml文件中配置

<select id="selectEmp"  resultType="com.neuedu.entity.Employee">
            select id,e_name,gender,email from employee where id = #{id}
        </select>

要标明resultType的类型,写类的全类名

3.List 列表类型

public List<Employee> selectAll();

在映射文件EmployeeMapper.xml文件中配置

<select id="selectAll" resultType="com.neuedu.entity.Employee">
        select * from employee
      </select>

返回值类型resultType的值为列表放入的实体类的全类名

4.Map 类型,返回单条记录为Map

public Map<String, Object> selectEmployee(Integer id);

在映射文件EmployeeMapper.xml文件中配置

<select id="selectEmployee" resultType="java.util.Map">
        select * from employee where id=#{id}
      </select>

返回值类型resultType的值为Map的全类名
测试一下:

@Test
public void testselectEmployee(){
        Map<String, Object> map = mapper.selectEmployee(4);
        Set<Entry<String,Object>> entrySet = map.entrySet();
        for (Entry<String, Object> entry : entrySet) {
            System.out.println(entry.getKey()+":"+entry.getValue());
        }
        session.commit();
        session.close();
    }

5..返回为一个ResultMap:自定义结果集映射规则
尤其是当数据表的列名和类的属性名不对应的时候,处理方法:
1.起别名
2.符合下划线转驼峰式命名规范
3.用这里的resultMap

<select id="selectEmp"  resultMap="getemployee">
            select id,e_name,gender,email from employee where id = #{id}
        </select>
        <resultMap id="getemployee" type="com.neuedu.entity.Employee">
            <id column="id" property="id"/>
            <result column="e_name" property="name"/>
        </resultMap>

type:自定义规则的javabean类型 ; id:唯一id方便引用
指定主键列的封装规则:
1.id定义主键列会有底层优化
2.column:指定是哪一列
3.property:指定对应的javaBean属性
其它不指定的列只要属性名和列名会自动封装,我们只要写resultMap就把全部的映射规则都写上,不写是因为列名和属性名是对应的

转载于:https://www.cnblogs.com/mazhitao/p/7487953.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值