MyBatis字段名和属性名不一致的解决方法
作者:zjw_rp 发布时间:2022-12-15 18:15:22
标签:MyBatis,字段名,属性名
1. 字段取别名,和属性名保持一致
映射文件
<mapper namespace="com.atguigu.mybatis.mapper.EmpMapper">
<!-- 字段名跟属性名不一致情况下,如何处理映射关系-->
<!-- Emp getEmpById(@Param("empId") Integer empId);-->
<select id="getEmpById" resultType="Emp">
<!--方式一:给字段起别名,和属性名保持一致-->
select emp_id empId,emp_name empName,age,gender from t_emp where emp_id=#{empId}
</select>
</mapper>
2. 使用全局配置处理字段名和属性名不一致
当字段符合mysql要求,使用_线,而符合java的要求使用驼峰,
可以在mybatis核心配置设置一个全局配置,可以自动将下划线映射为驼峰。
<setting name="mapUnderscoreToCamelCase" value="true"/>
①核心配置文件
<!-- 设置全局配置 将下划线映射为驼峰 -->
<!--emp_id-empId; emp_Name-empName -->
<settings>
<setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>
②映射文件
<select id="getEmpById" resultType="Emp">
select * from t_emp where emp_id=#{empId}
</select>
3. 使用自定义映射resultMap处理字段名和属性不一致情况
resultMap:设置自定义的映射关系
id:唯一标识
type:处理映射关系的实体类的类型
标签:
id:处理主键和实体类中实现的映射关系
result:处理普通字段和实体类中属性的映射关系
column:映射关系中的字段名,必须是sql查询出某个字段
property:设置映射关系中的属性的属性名,必须是处理的实体类类型中的属性名
映射文件
<resultMap id="empResultMap" type="Emp">
<id column="emp_id" property="empId"></id>
<result column="emp_name" property="empName"></result>
<result column="age" property="age"></result>
<result column="gender" property="gender"></result>
</resultMap>
<select id="getEmpById" resultMap="empResultMap">
select * from t_emp where emp_id=#{empId}
</select>
来源:https://blog.csdn.net/zjw_rp/article/details/128557953


猜你喜欢
- 一,准备沙箱环境1,登录支付宝,进入 应用列表界面 https://openhome.alipay.com/dev/workspace2,如
- Android webview 从Lollipop(5.0)开始webview默认不允许混合模式,https当中不能加载http资源,需要设
- 实例如下:package com.bwsk.modules.weixin.util;import java.util.Random;/**
- 启动命令:java -jar weichi-1.0.0.jar将命令打印到1.log上 java -jar weichi-1.0.0.jar
- 本项目是一个比较有趣的项目源码,可以给其他项目加锁,程序锁的原理是一个“看门狗”的服务定时监视顶层activity,如果activity对应
- 项目需求中有个功能模块需要用到时间选择控件,但是android系统自带的太丑了,只能自己优化下,结合WheelView实现滚轮选择日期,好像
- 正常状态是UP,跳闸是⼀种状态CIRCUIT_OPEN,可以通过/health查看,前提是工程中需要引入SpringBoot的actuato
- .ini 文件是Initialization File的缩写,即初始化文件,是windows的系统配置文件所采用的存储格式,统管window
- 在游戏开发中,主角需要通过跑地图来通关升级,本章主要介绍主角的移动和摄像跟随的操作。主角移动角色位移通过主角的骨骼动画控制(后续文章会详细介
- 前言我们在日常的开发中有时候会遇到需要用到相机的需求,而相机也是很常用的东西,例如扫二维码啊拍照上传啊等等。这里我不讲像qq那样自定义很强的
- 一、写在前面的在需求上遇到背景设置透明度还是比较常见的,设置透明度有几种方式,但是不同的场景应用下,不同的方式可能会出现一些问题。针对开发过
- Wrapper---条件查询器:使用它可以实现很多复杂的查询1.条件查询1.1查询name不为空的用户,并且邮箱不为空的用户,年龄大于等于1
- /// <summary> /// 遍历Co
- 在上篇博客初识Spring Boot框架中我们初步见识了SpringBoot的方便之处,很多小伙伴可能也会好奇这个spring Boot是怎
- 在使用Android Studio开发的时候,如遇到多个项目引用同一个library的情况时,会遇到在每个项目中都要有一套library的代
- Tab与TabHost:这就是Tab,而盛放Tab的容器就是TabHost 。如何实现?? 每一个Tab还对应了一个布局,这个就有点好玩了。
- import java.io.BufferedReader;import java.io.File;import java.io.FileI
- 五丶封装(1)包的概念与创建1>概念在我们的电脑上有许多的文件,我们为了方便管理,大致给它们进行了不同的命名。然后在不同的文件夹下面再
- 本文实例讲述了C#实现多线程的Web代理服务器。分享给大家供大家参考。具体如下:/**Proxy.cs:C# Programming Tip
- 本文实例为大家分享了Android实现EventBus登录界面与传值的具体代码,供大家参考,具体内容如下展示效果添加EventBus导入依赖