gpt4 book ai didi

java - 使用statement.executeQuery编写的Select语句无法选择具有-(破折号)的值

转载 作者:行者123 更新时间:2023-12-02 11:07:49 24 4
gpt4 key购买 nike

我有一个 Oracle 数据库表 MyTable,其中有一列 XYZ,数据类型为 varchar2(40 Byte)

该表中还有一行具有 XYZ 列的值,例如 '12345678-1234'

当我使用 Oracle SQL 客户端并运行 select 语句:select * from MyTable where XYZ='12345678-1234'; 时,它返回一条记录。

但是当我使用 java 执行相同的 select 语句(如下所示)时,它返回没有行。

Connection con = DriverManager.getConnection(url,user,pass);//I have proper parameters here
Statement stmt = con.createStatement();
String query= "select * from MyTable where XYZ='12345678-1234'";
ResultSet rs = stmt.executeQuery(query);
if (rs.next()){
System.out.println(rs.getString("XYZ"));
}else {
System.out.println("No Value"));
}

这里总是打印​​No Value

编辑:当我使用表行中没有破折号的值(例如:“12345678”)时,以上两者都会给出相同的结果 - 一行。

请指出我在这里缺少的内容。

最佳答案

您应该使用PreparedStatement

PreparedStatement stmt = con.prepareStatement("select * from MyTable where XYZ = ?");
preparedStatement.setString(1, "12345678-1234");
ResultSet rs = preparedStatement.executeQuery();

关于java - 使用statement.executeQuery编写的Select语句无法选择具有-(破折号)的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50819614/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com