SpringMVC GetJdbcTemplate()从查询中获取值

时间:2012-09-18 23:08:26

标签: sql spring spring-mvc jdbc jdbctemplate

我有一个函数,我想从我使用getJdbcTemplate的查询中提取vaue,我通过传递一个字符串查询和一个对象然后从对象访问值来提取vaue。我想在实际传递字符串时访问该值。我的代码是:

这里我使用Map但我没有传递对象Map results = getJdbcTemplate()。queryForMap(sql,userName)和userName是一个String。我必须使用Map,但这是怎么写的。

public boolean OfficerExist(Officers officer){


    try{

        logger.debug("About to check if officers existing");

        String sql = "SELECT userName FROM crimetrack.tblofficers WHERE userName = ?";

        logger.info("User Name Found 1");

        * Map<String, Object> results = getJdbcTemplate().queryForMap(sql, userName);

        logger.info("User Name Found 2");

        String dbUserName = (String)results.get("userName");

        logger.info("Checking if officers exist "+sql);

        if (dbUserName.equals(userName)) {

            logger.info("User Name Exists");
            return true;

        }else{
            logger.info("User Name Does NOT Exists");
            return false;
        }
        logger.info("User Name Found 3");

        return true;

    }catch(Exception e){

        logger.info(e.getMessage());
        return false;
    }
}

1 个答案:

答案 0 :(得分:0)

要尝试的一件事是代替Map,可能只是尝试查询Object,因为您知道自己只是在查询用户名。

getJdbcTemplate().queryForObject("select username...", String.class, userName)


public String findCustomerNameById(int custId){

String sql = "SELECT NAME FROM CUSTOMER WHERE CUST_ID = ?";

String name = (String)getJdbcTemplate().queryForObject(
        sql, new Object[] { custId }, String.class);

return name;

}