在MyBatis的映射中有column这么一个属性,我一直以为它映射的是数据库表中的列名,但经过学习发现他似乎映射的是SQL语句中的列名,或者说是查询结果所得到的表的列名,这篇文章主要介绍了MyBatis中column属性的总结,需要的朋友可以参考下
在MyBatis的映射中有column这么一个属性,我一直以为它映射的是数据库表中的列名,但经过学习发现他似乎映射的是SQL语句中的列名,或者说是查询结果所得到的表的列名。
下面我们进行一个实验。
首先我们有一张user表:

我还有一个实体类User,有着id、username、password三个属性。
我们的UserMapper接口中有着获取这张表单所有数据的方法。
我们现在在UserMapper.mxl中这样写:
<select id="getUsers" resultType="User">
select * from mybaties.user
</select>或者这样写:
<select id="getUsers" resultType="User">
select id, username, password from mybaties.user
</select>这两句完全相同,我们去测试一下看看结果:

成功获取了所有信息。
现在给password起个别名pwd,在UserMapper.mxl中这样写:
<select id="getUsers" resultType="User">
select id, username, password as pwd from mybaties.user
</select>此时我们再去运行:

我们会发现password竟然变成了null。
此时我们去配置一个结果映射,让pwd映射到我们的属性password:
<resultMap id="um" type="User">
<result property="password" column="pwd"/>
</resultMap>
<select id="getUsers" resultMap="um">
select id, username, password as pwd from mybaties.user
</select>测试结果:

没有问题。
得出结论:映射到属性的字段名是查询结果的列名,而不是数据库中已存在的表的列名。
到此这篇关于MyBatis中column属性的总结的文章就介绍到这了,更多相关MyBatis column属性内容请搜索编程学习网以前的文章希望大家以后多多支持编程学习网!
本文标题为:详解MyBatis中column属性的总结
基础教程推荐
- Java多线程学习笔记之三内存屏障与Java内存模型 2023-09-01
- Java Web开发中过滤器和监听器使用详解 2023-06-30
- Java实现插入排序算法可视化的示例代码 2023-04-23
- RocketMQ Push 消费模型示例详解 2023-05-24
- Spring Cloud Config分布式配置中心使用介绍详解 2023-05-07
- 一文带你搞懂Java中方法重写与方法重载的区别 2023-07-14
- MyBatis-Plus自定义通用的方法实现 2023-07-15
- java知识点7——面向过程和面向对象、面向对象的内存分析、构造方法 2023-09-01
- 关于Java双大括号{{}}的具体使用 2023-03-15
- Java List的get方法 2023-10-08
