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关联查询中 列名重复的解决办法的主要内容,如果未能解决你的问题,请参考以下文章
SSM框架MyBatis笔记 --- 动态sql讲义+实战;map在动态sql中的使用;列名与类中成员变量名不同的两种解决方案