PreparedStatement statement = connection.prepareStatement(
"select count(*) from ? where ?= ?;
);
想从某个表中,读取某些符合条件的数据,但这些条件程序运行阶段才知道的,比如从student表中,选student_no = ‘100’的学生
,那么我写如下代码
statement.setString( 1 , “student”);
statement.setString( 2 , “student_no” );
statement.setString( 2 , “100” );
感觉java语法没有错误,但是sql语法提示有错,从错误提示来看,我觉得是在进行语言转化的时候,java多添加了一些东西,具体我也不知道哪里错了。
求解答。
13 个解决方案
#1
statement.setString( 3 , “100” )
#2
不好意思,是
statement.setString( 3, “100” );复制的时候错了,请无视这个错误,我想问的不是这个错误。
statement.setString( 3, “100” );复制的时候错了,请无视这个错误,我想问的不是这个错误。
#3
不好意思,是
statement.setString( 3, “100” );复制的时候错了,请无视这个错误,我想问的不是这个错误。
#4
快来人啊~
#5
问题描述不清楚啊
#6
sql还能这么玩?第一次见到额。。。回去研究下先
#7
代码不全,错误描述不清楚
sql后面带了; 提示无效字符?
sql后面带了; 提示无效字符?
#8
头一次见PreparedStatement的?参数还能这么设置表名 列名的
#9
其实这问题很简单 PreparedStatement 在setString的时候自动加上了单引号,stdu 就变成了 'stdu' 表名是不能加单引号的,所以就会出现sql语句不对。
#10
楼主其实可以这样
PreparedStatement的?参数貌似不支持 设置表名 列名的
表名会报错 列名呢是查不出数据
String tablename = "student";//这三个可以作为方法参数
String colname = "student_no";
String colvalue = "100";
String sql = "select count(*) from "+ tablename + " where " + colname + "= ?";
PreparedStatement statement = connection.prepareStatement(sql);
statement .setString(1,colvalue);
PreparedStatement的?参数貌似不支持 设置表名 列名的
表名会报错 列名呢是查不出数据
#11
嗯,我想也是因为这个
#12
谢谢你的回答,之前想过通过字符串拼凑来解决,但是总觉得设计者应该想到这种问题,会提供相应的办法的。我就按你说的做啦
#13
关系型数据库的标准语言:SQL,规定了哪些地方可以用占位符表示将要被绑定的变量。
哪些地方?值的位置。其余位置一律不可用。
SQL的设计者就是这么设计的,Java的设计者想再多也没用。
哪些地方?值的位置。其余位置一律不可用。
SQL的设计者就是这么设计的,Java的设计者想再多也没用。
#1
statement.setString( 3 , “100” )
#2
不好意思,是
statement.setString( 3, “100” );复制的时候错了,请无视这个错误,我想问的不是这个错误。
statement.setString( 3, “100” );复制的时候错了,请无视这个错误,我想问的不是这个错误。
#3
不好意思,是
statement.setString( 3, “100” );复制的时候错了,请无视这个错误,我想问的不是这个错误。
#4
快来人啊~
#5
问题描述不清楚啊
#6
sql还能这么玩?第一次见到额。。。回去研究下先
#7
代码不全,错误描述不清楚
sql后面带了; 提示无效字符?
sql后面带了; 提示无效字符?
#8
头一次见PreparedStatement的?参数还能这么设置表名 列名的
#9
其实这问题很简单 PreparedStatement 在setString的时候自动加上了单引号,stdu 就变成了 'stdu' 表名是不能加单引号的,所以就会出现sql语句不对。
#10
楼主其实可以这样
PreparedStatement的?参数貌似不支持 设置表名 列名的
表名会报错 列名呢是查不出数据
String tablename = "student";//这三个可以作为方法参数
String colname = "student_no";
String colvalue = "100";
String sql = "select count(*) from "+ tablename + " where " + colname + "= ?";
PreparedStatement statement = connection.prepareStatement(sql);
statement .setString(1,colvalue);
PreparedStatement的?参数貌似不支持 设置表名 列名的
表名会报错 列名呢是查不出数据
#11
嗯,我想也是因为这个
#12
谢谢你的回答,之前想过通过字符串拼凑来解决,但是总觉得设计者应该想到这种问题,会提供相应的办法的。我就按你说的做啦
#13
关系型数据库的标准语言:SQL,规定了哪些地方可以用占位符表示将要被绑定的变量。
哪些地方?值的位置。其余位置一律不可用。
SQL的设计者就是这么设计的,Java的设计者想再多也没用。
哪些地方?值的位置。其余位置一律不可用。
SQL的设计者就是这么设计的,Java的设计者想再多也没用。