Mysql JDBC prepareStatement不起作用
我正在尝试使用prepareStatement函数。代码如下。在执行之后,它会返回一堆vlicense字符串,而不是值 当代码完成statement.setString时,该语句变为:Mysql JDBC prepareStatement不起作用,mysql,jdbc,prepared-statement,Mysql,Jdbc,Prepared Statement,我正在尝试使用prepareStatement函数。代码如下。在执行之后,它会返回一堆vlicense字符串,而不是值 当代码完成statement.setString时,该语句变为: select 'vlicense' from Vehicle 然而,它需要: select vlicense from Vehicle 没有引号。谁能告诉我有什么问题吗 statement = oConnection.prepareStatement("select ? from Vehicle"); Str
select 'vlicense' from Vehicle
然而,它需要:
select vlicense from Vehicle
没有引号。谁能告诉我有什么问题吗
statement = oConnection.prepareStatement("select ? from Vehicle");
String tempString = "vlicense";
statement.setString(1, tempString);
resultSet = statement.executeQuery();
不能将参数标记用于列名、表名、数据类型名或基本上非数据的任何内容。不能将参数标记用于列名、表名、数据类型名或基本上非数据的任何内容。?无法用于指定字段,仅用于在查询中执行一些筛选,如:
statement = conn.prepareStatement("select field from Vehicle where name=?");
在您的情况下,您的查询构建为:
select 'vlicense' from Vehicle
这意味着:为“Vehicle”的每个记录获取字符串“vlicense”。根据表中记录的数量,您将得到n个重复的字符串?无法用于指定字段,仅用于在查询中执行一些筛选,如:
statement = conn.prepareStatement("select field from Vehicle where name=?");
在您的情况下,您的查询构建为:
select 'vlicense' from Vehicle
这意味着:为“Vehicle”的每个记录获取字符串“vlicense”。根据表中记录的数量,您将得到n个重复的字符串当您向这样的语句添加绑定变量时,它将被转义,因此示例中的实际SQL字符串将作为SELECT'vlicense'FROM Vehicle进入数据库,选择一个文本字符串而不是您想要的列名 在准备SQL语句之前,需要将该变量列名连接到SQL语句中:
statement = oConnection.prepareStatement("SELECT " + vlicense + " FROM Vehicle");
绑定变量实际上用于查询参数,而不是动态查询。当您将绑定变量添加到这样的语句中时,它将被转义,因此示例中的实际SQL字符串将作为SELECT'vlicense'FROM Vehicle进入数据库,选择文字字符串而不是所需的列名 在准备SQL语句之前,需要将该变量列名连接到SQL语句中:
statement = oConnection.prepareStatement("SELECT " + vlicense + " FROM Vehicle");
绑定变量实际上用于查询参数,而不是动态查询。它与jdbc、预处理语句或mysql无关。
这只是一个错误的sql语句
如果键入:
Select 'justanexample' from Vehicle
这个表包含4行,你会得到4次
'justanexample'
'justanexample'
'justanexample'
'justanexample'
结果呢
您没有指定表结构,但我猜
语句应该是这样的:
select * from Vehicle where license = ?
它与jdbc、预处理语句或mysql无关。
这只是一个错误的sql语句
如果键入:
Select 'justanexample' from Vehicle
这个表包含4行,你会得到4次
'justanexample'
'justanexample'
'justanexample'
'justanexample'
结果呢
您没有指定表结构,但我猜
语句应该是这样的:
select * from Vehicle where license = ?