mybatis关联查询中 列名重复的解决办法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mybatis关联查询中 列名重复的解决办法相关的知识,希望对你有一定的参考价值。

参考技术A 假如两个表中有相同的列名,mybatis在查询时只会保留一个列的值,另一个会被覆盖掉,得不到正确的值。
解决办法 ,为其中一个重复的列起别名

同时resultmap中也要改一下column的值

参考: https://blog.csdn.net/jiang18238032891/article/details/88806168

Mybatis查询数据

查询一条数据返回一个对象

 

 

查询的时候数据库表的列名与实体类的属性名的关系:

当数据库的列名和实体类的属性名不一致的时候,会出现对象的属性没有赋值的问题,解决方式是在sql语句中的查询语句中,为查询的列取别名,别名跟实体类的属性名一致。

当数据库的列名和实体类的属性名是一致的时候,不需要额外的处理

查询的sql语句中的返回值的写法

方式1:使用resultType,完整的包名+类名

 

 

方式2:使用resultType,先在主配置文件中定义别名,查询的sql中只需要用别名

 

 

方式3:使用resultMap

 

 

查询多条数据返回一个List集合

 

 

查询返回Map集合

 

 

模糊查询

方式1:利用mysql里面的concat(a,b,c…)字符串拼接函数

 

 

方式2:同方式1

 

 

方式3:不推荐,会出现sql注入问题

这种方式运行的sql语句是:

不是用的占位符,会因为传输的值而随时可能改变sql语句的结构,造成sql注入的问题。

 

以上是关于mybatis关联查询中 列名重复的解决办法的主要内容,如果未能解决你的问题,请参考以下文章

mybatis 关联查询时,从表只返回第一条记录解决办法

Mybatis 关联对象不能输出的解决办法

Mybatis学习系列关联查询

SSM框架MyBatis笔记 --- 动态sql讲义+实战;map在动态sql中的使用;列名与类中成员变量名不同的两种解决方案

解决 mybatis 中相互关联的两种表数据在返回前端时一直循环查询,直到StackOverFlow报错

MyBatis_关联关系查询