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;
因为表明外面多了个单引号所以是错误的。请问应该怎么去掉单引号呢?

参考技术A ps1.setString(1, name);

这种写法字符串是会自动加单引号的;
除非改成
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语句设置表明为参数的主要内容,如果未能解决你的问题,请参考以下文章

怎么查找执行比较慢的sql语句

如何查找MySQL中查询慢的SQL语句

如何查找MySQL中查询慢的SQL语句

如何查找MySQL中查询慢的SQL语句

SQL Server2008 存储过程传入表名称和列名称,如何在语句中使用表明引用列名?

java jdbc sql语句参数的设置