Java JDBC模板查询与spring

Java JDBC模板查询与spring,java,spring,spring-data,Java,Spring,Spring Data,我正在尝试选择数据库以从字符串获取数据: final String queryPorLogin = "SELECT * from usuarios where login=? "; @Autowired private JdbcTemplate jdbcTemplate; @Override public boolean validar(String login) { return this.jdbcTemplate.queryForObject(queryPorLogin, new

我正在尝试选择数据库以从字符串获取数据:

final String queryPorLogin = "SELECT * from usuarios where login=? ";
@Autowired
private JdbcTemplate jdbcTemplate;

@Override
public boolean validar(String login) {
    return this.jdbcTemplate.queryForObject(queryPorLogin, new Usuarios(), 
    login);
}
但我有一个错误:

我认为在这种情况下使用该查询是不正确的,因为我想在数据库上进行选择,如果有结果,请使用resultset进行检查(使用bcrpyt的密码)。有人能帮我吗


我需要获取此选择的结果并进行比较。

您稍微混合了
jdbcTemplate.queryForObject
的输入。应该是:

Usuarios usuarios = this.jdbcTemplate.queryForObject(queryPorLogin, 
        new Object[]{login}, 
        Usuarios.class); // can pass also a RowMapper<Usuarios> for more detailed approach
Usuarios-Usuarios=this.jdbcTemplate.queryForObject(queryorlogin,
新对象[]{login},
Usuarios.class);//还可以传递行映射器以获得更详细的方法

第二个参数获取要绑定的参数列表,第三个参数获取预期结果的
类。

您稍微混合了
jdbcTemplate.queryForObject
的输入。应该是:

Usuarios usuarios = this.jdbcTemplate.queryForObject(queryPorLogin, 
        new Object[]{login}, 
        Usuarios.class); // can pass also a RowMapper<Usuarios> for more detailed approach
Usuarios-Usuarios=this.jdbcTemplate.queryForObject(queryorlogin,
新对象[]{login},
Usuarios.class);//还可以传递行映射器以获得更详细的方法

第二个参数获取要绑定的参数列表,第三个参数获取预期结果的
类。

在我看来
queryForMap
似乎是一个更好的选择

Map Map=jdbcTemplate.queryForMap(sql,login)

这将产生一个以键作为字符串、以值作为对象映射的单行。然后您可以检查您的bcrypt

如果您的首选项是
queryForObject
,那么您已经得到了上面的答案


在我看来,
queryForMap
似乎是一个更好的选择

Map Map=jdbcTemplate.queryForMap(sql,login)

这将产生一个以键作为字符串、以值作为对象映射的单行。然后您可以检查您的bcrypt

如果您的首选项是
queryForObject
,那么您已经得到了上面的答案



谢谢此用户。我可以进行比较吗?有没有办法使用resultset?是的,您需要作为第三个参数a行映射器传入。它应该包含mappingsEven的实现,尽管它只是这个表的一条记录?这是旧的API。您不需要
对象[]
较新的api有varargs,这些参数必须是最后一个参数。在当前版本中,它没有被弃用。与此用户进行比较是否可以使用resultset?是的,您需要作为第三个参数传入行映射器。它应该包含mappingsEven的实现,尽管它只是这个表的一条记录?这是旧的API。您不需要
对象[]
较新的api有vararg,并且这些必须是最后一个参数。在当前版本中,它没有被弃用,因为我需要为每个对象设置一个变量来获取密码和登录名?或者使用contains?如果表中每个登录名只包含一行,
queryForMap
更适合,您不需要循环。否则,
queryForList
,需要循环。请参见编辑示例。包含单行,然后我必须使用包含来检查bd密码是否与输入的密码相同?可能等于,而不仅仅是包含。但正如您所说,在进行比较之前,您可能需要对其进行bcrypt。之后,我需要为每个人输入密码和登录名?或者使用contains?如果您的表中每个登录名只包含一行,
queryForMap
更适合,您不需要循环。否则,
queryForList
,需要循环。请参见编辑示例。包含单行,然后我必须使用包含来检查bd密码是否与输入的密码相同?可能等于,而不仅仅是包含。但正如你所说,在进行比较之前,你可能需要对其进行检查。