简而言之,把#{tablename}换成${tablename}就能解决问题。
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/tornado430/article/details/83001874
参考于:http://blog.51cto.com/11230344/2287968
<select id= "queryTable" resultMap="map>
select * from #{tableName}
</select>
### SQL: select * from ?
### Cause: java.sql.SQLException: ORA-00903: 表名无效
发现有问题,实际上#{}方式通过?形式进行传递参数的,?它不支持tableName
将#{}换成${}
<select id= "queryTable" resultMap="map">
select * from ${tableName}
</select>
总结:
#{} :表示sql中的参数部分,实际上底层使用的是PreparedStatement
${}:表示字符串拼接,实际上底层采用的Statement对象
能使用#{}的地方都可以使用${}代替,但是能使用${}的地方不一定能够用#{}来替代
————————————————
版权声明:本文为CSDN博主「tornado430」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/tornado430/article/details/83001874