• 6.自定义映射resultMap


    搭建Mybatis框架

    ①引入相关的依赖

    ②一些配置文件给复制到我们的resources文件夹下

    例如:jdbc.properties;log4j.xml

    ③创建mybatis-config核心配置文件

    ④创建utils包和pojo包和mapper包以及映射文件所对应的包

    ⑤创建数据库的表

    t_emp

     t_dept

     ⑥在pojo创建数据库对应的实体类

    也就是创建属性,getset方法和构造器,还有重写toString方法

    ⑦mapper包下创建接口,看对表有什么操作需求

    ⑧在配置文件中创建mybatis-mapper,对应mapper接口

    一:resultMap处理字段和属性的映射关系

    ①mapper接口: 

    1. /**
    2. * 根据id查询员工信息
    3. * @param empId
    4. * @return
    5. */
    6. Emp getEmpByeEmpId(@Param("empId") Integer empId);

    ②mapper映射文件:

    1. <select id="getEmpByEmpId" resultMap="empResultMap">
    2. select * from t_emp where emp_id = #{empId}
    3. select>

    ③ 测试类

    1. @Test
    2. public void testGetEmpByEmpId() {
    3. SqlSession sqlSession = SqlSessionUtil.getSqlSession();
    4. EmpMapper mapper = sqlSession.getMapper(EmpMapper.class);
    5. Emp emp = mapper.getEmpByEmpId(1);
    6. System.out.println(emp);
    7. }

    结果:

    由于字段名和属性名不一致,而且没有创建映射关系,java中是驼峰的命名方式,而我们mysql中是下划线的命名方式,所以这时,我们就需要一些操作来将它们进行对应

    Emp{empId=null,empName='null',age=20,gender='男'}

    字段名和属性名不一致的情况,如何处理映射关系 

    1.为查询的字段设置别名,和属性名保持一致

    2.当字段符合MySQL的要求使用_,而属性符合java的要求使用驼峰

    此时可以在Mybatis的核心配置文件中设置一个全局配置,可以自动将下划线映射为驼峰

    emp_id--》empId ,emp_name--》empName

    3.使用resultMap自定义映射处理

     方式一:起别名

    select emp_id empId,emp_name empName,age,gender from t_emp where emp_id = #{empId}

    方式二: 使用标签进行配置

    1. <settings>
    2. <setting name="mapUnderscoreToCamelCase" value="true"/>
    3. settings>
    1. <select id="getEmpByEmpId" resultType="Emp">
    2. select * from t_emp where emp_id = #{empId}
    3. select>

    方式三: 设置自定义映射

        resultMap:设置自定义映射
        属性:
        id:表示自定义映射的唯一标识
        type:查询的数据要映射的实体类的类型
        子标签:
        id:设置主键的映射关系
        result:设置

  • 相关阅读:
    Rt-Thread 移植6--多线程(KF32)
    2个Integer类型的数据为什么不能比较是否相同了
    【Python小程序】浮点矩阵加减法
    WordPress 安装教程
    Linux MMC子系统 - 1.eMMC简介
    linux安装scrcpy最新版本
    flex的用法 代码6
    npm报错
    MongoDB教程(二):mongoDB引用shell
    今天小编给你介绍前端监控 SDK 开发分享
  • 原文地址:https://blog.csdn.net/m0_56379670/article/details/127528890