Java 使用具有2个以上参数的准备语句删除记录
我正在使用prepared语句对数据库执行一些操作。我的表格如下:Java 使用具有2个以上参数的准备语句删除记录,java,mysql,prepared-statement,sql-delete,Java,Mysql,Prepared Statement,Sql Delete,我正在使用prepared语句对数据库执行一些操作。我的表格如下: +--------------------------------------------------------+ |Field | Type | Size | Key | Text | +--------------------------------------------------------+ |X1DEL | Char | 1
+--------------------------------------------------------+
|Field | Type | Size | Key | Text |
+--------------------------------------------------------+
|X1DEL | Char | 1 | 2 | Status |
|X1CMP | Zoned | 3 | 1 | Company No. |
|X1ORD | Zoned | 9 | 2 | Order Number |
|X1TYPE | Char | 1 | 1 | Transaction Type |
|X1ORDT | Zoned | 8 | 0 | Order Date |
|X1CUST | Char | 10 | 0 | Customer Number |
|X1PO | Char | 20 | 0 | PO Number |
|X1OTOT | Zoned | 11 | 2 | Order Total |
+--------------------------------------------------------+
我正在做一个删除查询,作为单个参数的delete from_表,其中field=?
。
我已经为两个参数创建了查询,如从我的_表中删除delete,其中field=?和类型=?
现在我想再次对4到5个参数执行查询。我正在以delete的形式从我的_表中编写一个查询,其中field=?,type=?,size=?和键=?
我尝试过这个查询,但没有得到结果。当2参数示例向您展示了正确的操作时,您为什么这样做
delete from my_table where field = ? and type = ? and size = ? and key = ?
当2参数示例向您展示了正确的操作时,您为什么要这样做
delete from my_table where field = ? and type = ? and size = ? and key = ?
根据设计,使用任意数量的参数构建查询
final String sql = "delete from my_table where field=? and type=? and size=? and key=?";
如果您的参数在集合中
,您可以使用链接教程的建议和“使用for循环或while循环设置输入参数的值,使编码更容易”
。根据所提供的类型和参数数量,您需要为每个参数调用相应的.set
方法
//assuming con (DB connection) is properly setup
final PreparedStatment statement = con.prepareStatement(sql);
statement.setString(1, "X1DEL");
statement.setString(2, "CHAR");
statement.setInt(3,1);
statement.setInt(4, 2);
//... etc
您必须记住,准备好的语句是基于1的
索引。通过设计,可以使用任意数量的参数构建查询
final String sql = "delete from my_table where field=? and type=? and size=? and key=?";
如果您的参数在集合中
,您可以使用链接教程的建议和“使用for循环或while循环设置输入参数的值,使编码更容易”
。根据所提供的类型和参数数量,您需要为每个参数调用相应的.set
方法
//assuming con (DB connection) is properly setup
final PreparedStatment statement = con.prepareStatement(sql);
statement.setString(1, "X1DEL");
statement.setString(2, "CHAR");
statement.setInt(3,1);
statement.setInt(4, 2);
//... etc
您必须记住,准备好的语句是基于1的
索引。我不清楚您想做什么。如果要创建一个包含4个条件的查询,则创建一个(否,,
不是分隔条件的正确方法,您需要使用和或或
)。它是否适用于两个以上的参数?我有一个想法,因为它不适用于两个以上的参数,所以我要求提供查询。您可以使用数据库或驱动程序支持的任意多个参数。我不确定为什么这不是显而易见的,所以我假设您确实想做其他事情。您的问题中包含两个以上参数的查询是错误的:它有语法错误。这与参数的数量无关。我不清楚你想做什么。如果要创建一个包含4个条件的查询,则创建一个(否,,
不是分隔条件的正确方法,您需要使用和或或
)。它是否适用于两个以上的参数?我有一个想法,因为它不适用于两个以上的参数,所以我要求提供查询。您可以使用数据库或驱动程序支持的任意多个参数。我不确定为什么这不是显而易见的,所以我假设您确实想做其他事情。您的问题中包含两个以上参数的查询是错误的:它有语法错误。这与参数的数量无关。你可以自己尝试一下,并在发表此评论后的39分钟内轻松回答。如果你的代码写得不好,它就会失败。你可以自己尝试一下,并在你发布此评论后的39分钟内轻松回答。为什么字符串和准备好的语句在这里是最终的,主要是因为工作经验的习惯。为什么字符串和准备好的语句在这里是最终的,主要是因为工作经验的习惯。