我尝试使用以下代码在Spring数据库中获取具有多个条件的数据
public void AbsenStaff(int id, String category) {
Staff staff = new Staff();
String sql = "Select Absensi from Karyawan WHERE id=? AND Category=?";
int a = jdbcTemplate.queryForObject(sql, new Object[] { id },new Object[]{category},Integer.class);
staff.setjmlhAbsensi(a);
}
然而,IntelliJ给了我这个错误:
Cannot resolve method 'queryForObject(
java.lang.String,
java.lang.Object[],
java.lang.Object[],
java.lang.Class<java.lang.Integer>)'
我的代码有问题吗?
您需要发送对象数组中的所有参数值,因此您正在调用不同的方法。
这样尝试:
public void AbsenStaff(int id, String category) {
Staff staff = new Staff();
String sql = "Select Absensi from Karyawan WHERE id=? AND Category=?";
int a = jdbcTemplate.queryForObject(sql, new Object[]{id, category}, Integer.class);
staff.setjmlhAbsensi(a);
}
此外,在当前版本中取消了此用法。我建议你写如下:
jdbcTemplate.queryForObject(sql,Integer.class,id,category(;
根据https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/jdbc/core/JdbcTemplate.html
这些是queryForObject方法的有效方法签名
- queryForObject(String sql,Class requiredType(
- queryForObject(字符串sql、类requiredType、对象…args(
- queryForObject(String sql,Object[]args,Class requiredType(
- queryForObject(String sql,Object[]args,int[]argTypes,Class requiredType(
- queryForObject(String sql,Object[]args,int[]argTypes,RowMapper RowMapper(
- queryForObject(String sql,Object[]args,RowMapper RowMapper(
- queryForObject(字符串sql,RowMapper RowMapper(
- queryForObject(String sql,RowMapper RowMapper,Object…args(
因此,您必须(根据需要(选择其中一个,并以正确的顺序和正确的数据类型提供参数。
我想你想用这个
queryForObject(
String sql,
Object[] args,
Class<T> requiredType)
在这种情况下,您应该使用
int a = jdbcTemplate.queryForObject(
sql,
new Object[] {id,category},
Integer.class);