为了避免Athena Prepared Statement查询时参数顺序索引混乱的问题,可以使用命名参数的方式,在查询语句中给出参数的具体名称和对应的值。例如:
String sql = "SELECT col1, col2, col3 FROM myTable WHERE col1 = :value1 AND col2 = :value2";
PreparedStatement stmt = conn.prepareStatement(sql);
stmt.setString("value1", "foo");
stmt.setInt("value2", 42);
ResultSet rs = stmt.executeQuery();
这里的 :value1
和 :value2
就是命名参数,可以在 setXxx()
方法中指定命名参数的值,而不需要考虑顺序。注意,命名参数的名称必须以冒号 :
开头,且不能包含空格和其它特殊字符。