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
