gpt4 book ai didi

java - 准备好的语句、结果集和查询问题

转载 作者:行者123 更新时间:2023-11-29 07:03:57 24 4
gpt4 key购买 nike

下面的方法应该从 jsp 页面获取两个用户输入“低”和“高”,并使用它们来获取价格在“低”和“高”之间的属性列表。

我在 tomcat 日志中看到的一个错误是:

MySQLSyntaxErrorException:您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,了解正确的语法在第 1 行的“BETWEEN 100000.0 和 300000.0”附近使用

100000.0和300000.0是我输入的输入。

public static ArrayList<Property> search(double low, double high) {
ConnectionPool pool = ConnectionPool.getInstance();
Connection connection = pool.getConnection();
PreparedStatement ps = null;
ResultSet rs = null;

String query = "select * from properties"
+ "WHERE price BETWEEN ? and ?";

try {
ps = connection.prepareStatement(query);
ps.setDouble(1, low); //this should set user input = ?
ps.setDouble(2, high); //this should set user input = ?
rs = ps.executeQuery();

ArrayList<Property> list = new ArrayList<>();

while (rs.next()) {
Property p = new Property();
p.setName(rs.getString("name"));
p.setPrice(rs.getDouble("price"));
list.add(p);
}
return list;
} catch (SQLException e) {
System.out.println(e);
return null;
} finally {
DBUtil.closeResultSet(rs);
DBUtil.closePreparedStatement(ps);
pool.freeConnection(connection);
}

}

最佳答案

您的查询中缺少空格

String query = "select * from properties"
+ " WHERE price BETWEEN ? and ?";

正如你所看到的,这个词将变成propertiesWHERE

关于java - 准备好的语句、结果集和查询问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42429771/

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