【Mybatis】如何实现ORM映射-二

文章介绍了Mybatis如何进行ORM映射,包括默认要求的字段名一致、开启驼峰命名转换的配置、使用别名以及ResultMap自定义映射方法。在不遵守默认规范时,可以通过这些方式实现数据库列名与Java实体类字段的对应。
摘要由CSDN通过智能技术生成
唠嗑部分

上篇文章我们说了Mybatis基本的CRUD操作及工具类的封装,相关文章:
【Mybatis】简单入门及工具类封装-一

大家都知道,Mybatis是半自动化的ORM框架,那么它到底是如何帮我们完成ORM映射的呢?

这就是本篇文章和大家说的内容

言归正传

首先在默认情况下,要实现ORM映射,需要表的列表与实体类的字段名完全一致,Mybatis才能帮我们自动映射

但是,java中字段的自定规范遵循小驼峰命名法,而数据库表的字段名一般遵循下划线命名法

即数据库user_name,java字段名userName,想要完全一致,有一方就要打破规范,Mybatis有一个配置,会将数据库的下划线命名法自动转换为java中的小驼峰命名,但是需要我们手动开启

MyBatis只能自动维护库表”列名“与”属性名“相同时的一一对应关系,二者不同时,无法自动ORM。

方式一:驼峰命名

前提是数据库与java变量均遵循规范

在mybatis-config.xml添加如下配置,开启下划线转小驼峰命名

<settings>
    <setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>

没有配置小驼峰命名

image-20230306101148990

开启小驼峰命名

image-20230306101242604

方式二:别名

MySQl提供了别名的语法,可以使用别名让其列名与java实体类变量一致,完成ORM映射,操作如下

image-20230306101705306

方式三: ResultMap自定义结果集映射

Mybatis提供了一种自定义的结果集映射的方式,ResultMap语法如下

<resultMap id="idMap" type="com.cxs.model.User">
    <id column="id" property="id"/>
    <result column="user_name" property="userName"/>
    <result column="age" property="age"/>
    <result column="create_time" property="createTime"/>
</resultMap>

<select id="selectByIdMap" resultMap="idMap">
    SELECT * FROM user WHERE id = #{id}
</select>

image-20230306102540964

结果如上,也完成了ORM映射

结尾

总结一下,以上三种方式

1、基本都会用,第一种都会开启,毕竟方便很多,对于单表来说,都喜欢自动映射,省事

2、我个人来讲,ResultMap用的较多,这种一般会在多表联查中使用

3、别名用的较少,但是有一种情况会用,多表联查中如果有多个字段名一致时,会手动起别名,然后ResultMap映射

4、关于Mybatis的内容会持续更新,敬请期待

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

全栈小白.

感谢老板,祝老板今年发大财!

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

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

打赏作者

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

抵扣说明:

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

余额充值