如何使用namedjdbctemplate只选择一个字符串值

4dc9hkyq  于 2021-07-13  发布在  Java
关注(0)|答案(2)|浏览(330)

有一张table

employees
id    name
1     Alex
2     Mike

以及如何使用namedjdbctemplate编写返回字符串值的查询

fun getPersonNameById(id: Int): String =
   // jdbcTemplate.guery("select name from employees as e where e.id = :id,
uqdfh47h

uqdfh47h1#

我像这样解决了它-但是使用jdbc模板。例程可以处理多行,也可以管理一个空的结果集。

@Autowired
     lateinit var jdbcTemplate: JdbcTemplate

     val empRowMapper: RowMapper<Employee> = RowMapper { rs, _ ->        
                                            Employee(rs.getInt("id"), rs.getString("name")) }                                                                             

     fun findEmployeeById(empNumber: Int): Employee? {
         val employees = jdbcTemplate.query<Employee>("""  select id
                                                                , name
                                                             from employees 
                                                            where id = :empNumber
                                                      """, empRowMapper, empNumber)

         return employees.firstOrNull()
    }

数据类:

data class Employee(val employeeNumber: Int, val name: String)

即使你只需要一个字符串,我也会使用对象。对于对象,代码更容易扩展。对于Kotlin来说,这也不是什么大问题。

6tqwzwtp

6tqwzwtp2#

虽然你自己的答案解决了你的问题,但问题中提出的问题可以更简单地解决。

@Autowired
lateinit var jdbcTemplate: JdbcTemplate

fun findEmployeeById(empNumber: Int): String? {
    return jdbcTemplate.queryForObject("select name from employees where id = ?", String::class.java, empNumber)
}

相关问题