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


一、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:

在这里插入图片描述


4、ORM 框架:

遵循ORM思想实现的技术,解决持久层(DAO)的问题[和数据库连接,进行CRUD]。
■ 常见 ORM 框架:
  • JPA:本身是一种 ORM 规范,不是 ORM 框架。由各大 ORM 框架提供实现。
  • Hibernate:以前最流行的 ORM 框架。设计灵巧,性能优秀,文档丰富。
  • MyBatis: 目前最受欢迎的持久层解决方案。
  • 13
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 30
    评论
评论 30
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

伟庭大师兄

你的鼓励是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值