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

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

一、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: 目前最受欢迎的持久层解决方案。
目录
相关文章
|
5月前
|
SQL
列的别名实例
【7月更文挑战第15天】列的别名实例。
40 1
|
7月前
|
Python
定义字段
定义字段。
32 1
|
7月前
|
Java 关系型数据库 MySQL
JPA中实体类属性相关注解与数据表列映射详解
JPA中实体类属性相关注解与数据表列映射详解
384 0
|
SQL
一条集多表查询、字段与字段拼接、合并每张表共同字段、新增列并赋值的SQL
一条集多表查询、字段与字段拼接、合并每张表共同字段、新增列并赋值的SQL
72 0
|
设计模式 C# uml
属性和字段
属性和字段
101 0
|
Java 数据库连接 数据库
属性名和字段名不一致| 学习笔记
快速学习属性名和字段名不一致。
属性名和字段名不一致| 学习笔记
获取表的所有字段属性
获取表的所有字段属性
|
存储 关系型数据库 MySQL
MySQL数据库(13):列属性(字段属性)
MySQL数据库(13):列属性(字段属性)
162 0
合并查询结果与为表和字段取别名
合并查询结果与为表和字段取别名
181 0
合并查询结果与为表和字段取别名
|
Java 数据库连接 数据库
属性名和字段名不一致| 学习笔记
快速学习属性名和字段名不一致。
142 0
 属性名和字段名不一致| 学习笔记