Spring JDBC获取从查询返回的值

dev*_*dar 2 java sql spring jdbc spring-jdbc

嗨,我有一个查询,我从数据库中选择值,我想与所选数据进行比较。我能够创建查询并传入参数,但在访问从查询返回的值时仍然遇到一些问题。有人能告诉我我是否在正确的轨道上,我想我写错了最后两个陈述。

    String sql = "SELECT userName, password FROM tblusers WHERE userName = ? AND password = ? ";



    Object[] parameters = new Object[] {login.getUserName(), login.getPassword()};

    String dbUserName = (String)getJdbcTemplate().queryForObject(
            sql, parameters, String.class);

    String dbPassword = (String)getJdbcTemplate().queryForObject(
            sql, parameters, String.class);
Run Code Online (Sandbox Code Playgroud)

dav*_*ooh 5

如果您的查询只返回一条记录,我建议您使用:

queryForMap(String sql, Object... args)

看看javadoc。

对于您的具体问题,这应该有效:

Map<String,Object> results = 
        getJdbcTemplate().queryForMap(
            "SELECT userName, password FROM tblusers WHERE userName = ? AND password = ?"
            , login.getUserName()
            , login.getPassword());

String dbUserName = (String)results.get("userName");
String dbPassword = (String)results.get("password");
Run Code Online (Sandbox Code Playgroud)