解决表的列名和对象的属性名不匹配

简介: 解决表的列名和对象的属性名不匹配

一、MyBatis使用resultMap解决表的列名和对象的属性名不匹配

✿ 默认情况下,通过设置返回类型resultType 是要求表的列名和对象的属性名要一致,否则会出错。


1、方式一:使用别名:

<select id="getList" parameterType="java.lang.Long" resultType="user">
   select u_id id, u_name name, u_salary salary from t_user;
 </select>


★ 2、方式二:使用resultMap:

  • resultMap 和 resultType不能同时使用
<!-- resultMap 结果集合对象映射:解决表的列名和对象的属性名不匹配的问题
       id:唯一标识
       type:封装结果集的每一行记录的类型
       子元素:result 匹配对象中的哪一个属性对应表的哪一列 【若是主键,建议使用id元素代替result元素提高性能】
   -->
      <resultMap id="BaseResultMap" type="User" >
        <id column="u_id" property="id"/>
        <result column="u_name" property="name"/>
        <result column="u_salary" property="salary"/>
      </resultMap>
<select id="getList" parameterType="java.lang.Long" resultMap="BaseResultMap">
   select u_id, u_name, u_salary from t_user;
</select>


二、ORM(Object Relational Mapping) 对象映射关系

1、ORM技术:为了解决面向对象与关系数据库存在的互相不匹配的问题。 [主要是:对象的属性名和表的列名不匹配的问题]


2、ORM思想:

面向对象概念----(映射配置)-----面向关系概念

类 ------------------------------------- 表

对象 -------------------------------- 表的行(记录)

属性 -------------------------------- 表的列(字段)


3、映射规则:使用注解/xml:

❀ 属性名和列名是不同的,将两者对应起来需要使用还能某种规则【注解/xml

  • 使用xml:

2.png


4、ORM 框架:

遵循ORM思想实现的技术,解决持久层(DAO)的问题[和数据库连接,进行CRUD]。

■ 常见 ORM 框架:

  • JPA:本身是一种 ORM 规范,不是 ORM 框架。由各大 ORM 框架提供实现。
  • Hibernate:以前最流行的 ORM 框架。设计灵巧,性能优秀,文档丰富。
  • MyBatis: 目前最受欢迎的持久层解决方案。
目录
相关文章
|
Java Spring
Spring Boot 排除自动配置的 4 种方法,关键时刻很有用!
Spring Boot 提供的自动配置非常强大,某些情况下,自动配置的功能可能不符合我们的需求,需要我们自定义配置,这个时候就需要排除/禁用 Spring Boot 某些类的自动化配置了。
Spring Boot 排除自动配置的 4 种方法,关键时刻很有用!
|
Nacos 微服务
Nacos2.0系列启动报错指南
近期闲来无事升级了一下自己微服务的各个组件的版本,追求新版一直是我的一个基本操作,毕竟勇于尝鲜才是王者风范,结果,升级Nacos版本的时候直接翻车,Nacos启动直接报错,顿时手足不错,想了想是不是新版有什么新特性或者其他调整啊,于是去官网看了一下,果然版本更新后存在了一些差异,下面一起来看看
1195 0
Nacos2.0系列启动报错指南
|
6月前
|
人工智能 自然语言处理 小程序
蚂蚁百宝箱 3 分钟上手 MCP:6 步轻松构建 Qwen3 智能体应用并发布小程序
本文介绍如何用6个步骤、3分钟快速构建一个基于Qwen3与蚂蚁百宝箱MCP的智能体应用,并发布为支付宝小程序。通过结合Qwen3强大的语言理解和生成能力,以及支付宝MCP提供的支付功能,开发者可轻松打造具备商业价值的“数字员工”。案例以“全球智能导游助手”为例,支持119种语言,不仅提供旅行建议,还能收取用户打赏。文章详细说明了从登录百宝箱、创建应用、添加插件到配置角色、发布上架及手机端体验的完整流程,同时提醒当前支付功能仅适用于测试环境。适合希望探索AI应用变现潜力的开发者尝试。
939 14
|
3月前
|
域名解析 人工智能 机器人
AppFlow:企业微信支持流式群聊机器人
企业微信近日更新,新增群聊机器人功能,支持与自定义大模型对话。通过@机器人,可实现流式输出,提升交互效率。只需简单配置,即可将AI能力集成至群聊,完成即时消息解析与业务联动。
802 1
AppFlow:企业微信支持流式群聊机器人
|
4月前
百宝箱生成智能体
本教程介绍如何创建并发布一个应用。首先点击“新建应用”,按工作流配置相关信息,完成后点击“发布”。最后进入“Web服务”页面,完成上架操作。全流程图文指引,助您快速上线应用。
154 0
|
9月前
|
机器学习/深度学习 存储 人工智能
《DeepSeek情感分析技术:突破与创新,精准判断情感倾向》
在数字化时代,文本数据激增,情感分析成为关键需求。DeepSeek作为AI领域的佼佼者,基于Transformer架构实现深度语义理解,通过多模态融合技术全面感知情感,结合领域自适应与迁移学习跨越不同场景,采用对抗训练提升鲁棒性,并融合情感词典与知识图谱增强理解。这些创新使DeepSeek能精准判断情感倾向,为企业和研究提供有力支持。
1117 20
|
12月前
|
Java
Unable to obtain OffsetDateTime from TemporalAccessor: {},ISO resolved to 2024-11-26T20:55:26 of type java.time.format.Parsed
Unable to obtain OffsetDateTime from TemporalAccessor: {},ISO resolved to 2024-11-26T20:55:26 of type java.time.format.Parsed
383 0
|
存储 缓存 安全
学习服务器硬件基础知识
服务器是指一种高性能计算机,提供计算、存储和通信服务。通常运行在网络环境中,为计算机、设备或用户提供资源共享、数据存储和处理等服务。服务器可以是专门设计的硬件设备,也可以是在普通计算机上运行的特定软件。
682 6
|
Java 应用服务中间件 Linux
SpringBoot - Processing of multipart/form-data request failed. Unexpected EOF read on the socket
SpringBoot - Processing of multipart/form-data request failed. Unexpected EOF read on the socket
1962 0
SpringBoot - Processing of multipart/form-data request failed. Unexpected EOF read on the socket
数据库bug-[08001] Could not create connection to database server. Attempted reconnect 3,主机名ip必须写对
数据库bug-[08001] Could not create connection to database server. Attempted reconnect 3,主机名ip必须写对