mapper文件中动态表名和动态属性的使用
mapper文件中动态表名和动态属性的使用
遇到一个需要在一个sql语句中实现动态表名和动态属性的情境,在多张相似表中查询不同name的信息,由于我使用的是Mybatis,所以我需要在mapper文件中实现动态表名和动态查询。经过上网查找,了解了${},#{}的原理和使用情境。但是,我在尝试中发现这两个不能再同一句sql语句中,所以需要舍弃其中一个。
<select id="selectAllByText" parameterType="com.*.*.domain.*" resultType="java.util.HashMap" statementType="STATEMENT"> SELECT *FROM ${table_name} WHERE name = '${name}' </select>
由于${}中是直接带入具体的值,而#{}则是带入变量,所以只要在属性值中用‘’,使得sql语句符合语法,就可以实现。
附上网址,以便查阅:
mybatis mapper.xml文件中$和#的使用区别
https://blog.csdn.net/xingxinghann/article/details/78533242
MyBatis动态传入表名,字段名参数的解决办法--用于分表--表名是动态的
https://blog.csdn.net/lsm135/article/details/77605967
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步