mybatis处理字段和属性的映射关系
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
自定义标签相关的属性
父级标签
resultMap
:设置自定义映射关系id
:唯一标识,不能重复type
:设置映射关系中的实体类类型【就是查询结果给那个JavaBean
赋值】
子标签:【重点理解】
id
:设置主键的映射关系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处理字段和属性的映射关系相关推荐
- mybatis解决字段和属性的映射关系3 - 通过resultMap设置自定义映射关系
本节我们将探索mybatis解决字段和属性的映射关系3 - 通过resultMap设置自定义映射关系 目录 1.接口和pojo实体类 2.mapper映射文件 2.1 resultMap 2.2 re ...
- mybatis crud_MyBatis教程– CRUD操作和映射关系–第2部分
mybatis crud 为了说明这一点,我们正在考虑以下示例域模型: 会有用户,每个用户可能都有一个博客,每个博客可以包含零个或多个帖子. 这三个表的数据库结构如下: CREATE TABLE us ...
- Mybatis使用Association解决多对一映射关系
association :处理多对一的映射关系 property:需要处理的映射关系的属性名 javatype:该属性的类名 <resultMap id="empAndDeptResu ...
- mybatis crud_MyBatis教程– CRUD操作和映射关系–第1部分
mybatis crud CRUD操作 MyBatis是一个SQL Mapper工具,与直接使用JDBC相比,它极大地简化了数据库编程. 步骤1:创建一个Maven项目并配置MyBatis依赖项. & ...
- Mybatis处理字段名和属性名不一致的几种方法
Mybatis处理字段名和属性名不一致的几种方法 1.为查询的字段设置别名,和属性名保持一致2.当字段符合MySQL的要求使用,而属性符合Java的要求使用驼峰-此时可以在mybatis核心配置文件中 ...
- MyBatis教程– CRUD操作和映射关系–第2部分
为了说明这一点,我们正在考虑以下示例域模型: 会有用户,每个用户可能都有一个博客,每个博客可以包含零个或多个帖子. 这三个表的数据库结构如下: CREATE TABLE user (user_id i ...
- ES-06-ElasticSearch映射关系
说明 ElasticSearch映射关系(mapping) 常用数据类型:keyword.boolean.text.integer.long等.详细数据类型参考官方文档:https://www.ela ...
- Mybatis学习之数据库字段与实体属性的映射
目录 准备 问题 方式一:给查询的字段起别名 方式二:修改核心配置文件mybatis-config.xml 方式三:通过resultMap自定义映射 准备 我们的表的字段以及表数据如下 生成的实体类的 ...
- MyBatis Plus——忽略某个实体类属性和数据库表字段之间的映射关系
问题描述 在开发中可能会遇到MyBatis-Plus使用实体类属性进行SQL操作,但是不用存到数据库中去查找,这时候我们的实体中有这个属性,但是数据库的表中没有这个字段(即:实体类属性非数据库表字段) ...
最新文章
- java二次开发浏览器内核_常见的五大浏览器的内核
- ubuntu创建新用户名和密码以及查看删除用户
- MySQL-通过MaxScale实现读写分离初探
- 配置toad远程连接oracle
- 粗糙集理论介绍(概念入门)
- 使用cgroup对指定用户使用的memory进行限制的一个具体例子
- 28和lba48命令格式区别_编译Sass(命令行)
- 关于Go程序错误处理的一些建议
- udp服务器php代码例子,Java客户端PHP服务器UDP穿孔示例代码
- Linux input输入子系统demo驱动
- Atitit.获得向上向下左的右的邻居的方法 软键盘的设计..
- 锐起无盘4.2服务器设置,锐起无盘4.5免费版
- 共焦显微镜技术原理、参数及其应用
- python输出你好_python输出你好
- 服务器CPU使用率过高排查与解决思路
- matlab画左右半圆
- web前端学习到什么程度可以面试工作
- swing可视化编程-使用label添加图片
- 韩服游戏IP用哪里的比较稳定怎么选择服务器
- 严格模式和普通模式的区别