sql语句设置表明为参数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql语句设置表明为参数相关的知识,希望对你有一定的参考价值。
String sql ="select backboard,assists,anerror from ? where id<100 order by id desc limit 6";
String name="一班成绩";
ps1.setString(1, name);
我把sql语句用toString打印出来是这样的:
com.mysql.jdbc.JDBC4PreparedStatement@254989ff:
select backboard,assists,anerror from '一班成绩' where id<100 order by id desc limit 6;
因为表明外面多了个单引号所以是错误的。请问应该怎么去掉单引号呢?
这种写法字符串是会自动加单引号的;
除非改成
String sql ="select backboard,assists,anerror from "+name+" where id<100 order by id desc limit 6";追问
意思是采用字符串拼接而不采用参数传递?
追答是了
本回答被提问者采纳 参考技术B 表名不能为参数。除非你用存储过程,在存储过程中将参数拼接成SQL语句。如何查找MySQL中查询慢的SQL语句
参考技术A 如何查找MySQL中查询慢的SQL语句一、MySQL数据库有几个配置选项可以帮助我们及时捕获低效SQL语句
1,slow_query_log
这个参数设置为ON,可以捕获执行时间超过一定数值的SQL语句。
2,long_query_time
当SQL语句执行时间超过此数值时,就会被记录到日志中,建议设置为1或者更短。
3,slow_query_log_file
记录日志的文件名。
4,log_queries_not_using_indexes
这个参数设置为ON,可以捕获到所有未使用索引的SQL语句,尽管这个SQL语句有可能执行得挺快。
以上是关于sql语句设置表明为参数的主要内容,如果未能解决你的问题,请参考以下文章