2018-09-17 16:23题主

关于SQL语句中传递参数和引用参数作为数值型的问题


想用传递的值做列名进行查询tomcat中显示如下

如何写会没有单引号
2018-09-18 08:48#1
{??}默认为字符型,如果为整数使用{?integer.val1?},如果为浮点数使用{?double.val2?}
控件台中的SQL语句是系统根据SQL中的参数生成的供参考的语句,并非直通的SQL
2018-09-18 09:05#2
谢谢一楼,主要是我想用val1作为SQL查询约束条件的列名,但是用{?val1?}这种格式传过来的动态值会自动加上单引号,导致语句变成 WHERE 'xxx'='XXX' 变成判断两个字符串是否相等,从而查不到任何内容,如何写才能使语句变成 WHERE xxx='XXX'格式,xxx为列名
2018-09-19 09:43#3
首先你得明白什么是SQL参数,SQL参数并非是字段名和表名,它是值
如果字段名称要动态可以使用拼SQL来实现,拼SQL需要防止SQL注入,
可以通过StringUtil.checkName方法检查名称和值的合法性
2018-09-27 09:24#4
where '{#fieldName#}'={?fieldValue?}

返回开发者社区