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

方式一:字段名与属性名不一致,用别名解决
select * from emp;select eid,emp_name as empName,age,sex,email from emp;别名方式
方式二:核心配置文件中setters标签配

setters标签配置mapUnderscoreToCamelCase属性,值设置为true是开户驼峰命名转换,默认是false是不开启驼峰命名转换

设置名 描述 有效值 默认值
mapUnderscoreToCamelCase 是否开启驼峰命名自动映射,即从经典数据库列名 A_COLUMN 映射到经典 Java 属性名 aColumn。 `true false`
 <settings><setting name="mapUnderscoreToCamelCase" value="true"/></settings>
方式三:自定义映射关系

resultMap自定义标签相关的属性

父级标签

  1. resultMap:设置自定义映射关系
  2. id:唯一标识,不能重复
  3. type:设置映射关系中的实体类类型【就是查询结果给那个JavaBean赋值】

子标签:【重点理解】

  1. id:设置主键的映射关系

  2. result:设置普通字段映射关系

    属性:

    property:设置映射关系中的属性名,必须是type属性所设置的实体类类型中的属性名【就是type设置JavaBean类中的属性】

    column:设置映射关系中字段名,必须是sql语句查询出字段名【就是查询语句中的字段】

案例:

 <!--查询所有员工,并且使用resultMap解决字段名与属性名不一致问题--><!--resultMap:设置自定义映射关系id:唯一标识,不能重复type:设置映射关系中的实体类类型子标签:id:设置主键的映射关系result:设置普通字段的映射关系属性:property:设置映射关系中的属性名,必须是type属性所设置的实体类类型中的属性名column:设置映射关系中的字段名,必须是sql语句查询出的字段名--><resultMap id="empResultMap" type="Emp"><id property="eid" column="eid"/><result property="empName" column="emp_name"/><result property="age" column="age"/><result property="sex" column="sex"/><result property="email" column="email"/></resultMap><select id="getAllEmp" resultMap="empResultMap">select * from emp;</select>

综合案例

Mapper接口

public interface ResultMapper {/*** 查询所有员工,解决字段名与属性不一致三种方式*/List<Emp> getAllEmp();
}

Mapper.xml文件

<!--
/*** 查询所有员工,解决字段名与属性不一致三种方式*/List<Emp> getAllEmp();方式一:起别名<select id="getAllEmp" resultType="Emp">select eid,emp_name as empName,age,sex,email,did from emp;</select>方式二;设置全局[核心]配置文件开启驼峰命名<settings><setting name="mapUnderscoreToCamelCase" value="true"/></settings>方式三:自定义映射文件
--><!--起别名--><select id="getAllEmpOld" resultType="Emp">select eid,emp_name as empName,age,sex,email,did from emp;</select><!--自定义映射文件--><resultMap id="empResultMap" type="Emp"><id property="eid" column="eid"/><result property="empName" column="emp_name"/><result property="age" column="age"/><result property="sex" column="sex"/><result property="email" column="email"/><result property="did" column="did"/></resultMap><select id="getAllEmp" resultMap="empResultMap">select * from emp;</select>

test

public class ResultMapperTest {SqlSession sqlSession = SqlSessionUtils.getSqlSession();ResultMapper mapper = sqlSession.getMapper(ResultMapper.class);@Testpublic void testField(){List<Emp> list = mapper.getAllEmp();list.forEach(emp -> System.out.println(emp));}
}

mybatis处理字段和属性的映射关系相关推荐

  1. mybatis解决字段和属性的映射关系3 - 通过resultMap设置自定义映射关系

    本节我们将探索mybatis解决字段和属性的映射关系3 - 通过resultMap设置自定义映射关系 目录 1.接口和pojo实体类 2.mapper映射文件 2.1 resultMap 2.2 re ...

  2. mybatis crud_MyBatis教程– CRUD操作和映射关系–第2部分

    mybatis crud 为了说明这一点,我们正在考虑以下示例域模型: 会有用户,每个用户可能都有一个博客,每个博客可以包含零个或多个帖子. 这三个表的数据库结构如下: CREATE TABLE us ...

  3. Mybatis使用Association解决多对一映射关系

    association :处理多对一的映射关系 property:需要处理的映射关系的属性名 javatype:该属性的类名 <resultMap id="empAndDeptResu ...

  4. mybatis crud_MyBatis教程– CRUD操作和映射关系–第1部分

    mybatis crud CRUD操作 MyBatis是一个SQL Mapper工具,与直接使用JDBC相比,它极大地简化了数据库编程. 步骤1:创建一个Maven项目并配置MyBatis依赖项. & ...

  5. Mybatis处理字段名和属性名不一致的几种方法

    Mybatis处理字段名和属性名不一致的几种方法 1.为查询的字段设置别名,和属性名保持一致2.当字段符合MySQL的要求使用,而属性符合Java的要求使用驼峰-此时可以在mybatis核心配置文件中 ...

  6. MyBatis教程– CRUD操作和映射关系–第2部分

    为了说明这一点,我们正在考虑以下示例域模型: 会有用户,每个用户可能都有一个博客,每个博客可以包含零个或多个帖子. 这三个表的数据库结构如下: CREATE TABLE user (user_id i ...

  7. ES-06-ElasticSearch映射关系

    说明 ElasticSearch映射关系(mapping) 常用数据类型:keyword.boolean.text.integer.long等.详细数据类型参考官方文档:https://www.ela ...

  8. Mybatis学习之数据库字段与实体属性的映射

    目录 准备 问题 方式一:给查询的字段起别名 方式二:修改核心配置文件mybatis-config.xml 方式三:通过resultMap自定义映射 准备 我们的表的字段以及表数据如下 生成的实体类的 ...

  9. MyBatis Plus——忽略某个实体类属性和数据库表字段之间的映射关系

    问题描述 在开发中可能会遇到MyBatis-Plus使用实体类属性进行SQL操作,但是不用存到数据库中去查找,这时候我们的实体中有这个属性,但是数据库的表中没有这个字段(即:实体类属性非数据库表字段) ...

最新文章

  1. java二次开发浏览器内核_常见的五大浏览器的内核
  2. ubuntu创建新用户名和密码以及查看删除用户
  3. MySQL-通过MaxScale实现读写分离初探
  4. 配置toad远程连接oracle
  5. 粗糙集理论介绍(概念入门)
  6. 使用cgroup对指定用户使用的memory进行限制的一个具体例子
  7. 28和lba48命令格式区别_编译Sass(命令行)
  8. 关于Go程序错误处理的一些建议
  9. udp服务器php代码例子,Java客户端PHP服务器UDP穿孔示例代码
  10. Linux input输入子系统demo驱动
  11. Atitit.获得向上向下左的右的邻居的方法 软键盘的设计..
  12. 锐起无盘4.2服务器设置,锐起无盘4.5免费版
  13. 共焦显微镜技术原理、参数及其应用
  14. python输出你好_python输出你好
  15. 服务器CPU使用率过高排查与解决思路
  16. matlab画左右半圆
  17. web前端学习到什么程度可以面试工作
  18. swing可视化编程-使用label添加图片
  19. 韩服游戏IP用哪里的比较稳定怎么选择服务器
  20. 严格模式和普通模式的区别

热门文章

  1. PCB板常见的表面工艺介绍
  2. 已知矩形面积,求最小周长
  3. 【cocos 2d微信小游戏开发教程】基础使用笔记分享(三)
  4. PCB 奥宝LDI 输出自动改周期检测内容
  5. Socket 实现非阻塞式多线程文件传输(jpg mov 等各种格式)
  6. 我是如何考上国家公务员的
  7. 霍尔效应传感器A3144磁力开关的基本操作和说明
  8. 红米k40怎么投屏到电视
  9. 单源最短路径Dijkstra算法升级:出现多条最短路径,输出之?
  10. 通过社交媒体针对安全研究人员的社会工程学攻击活动