【问题标题】:How to select just a string value using NamedJdbcTemplate如何使用 NamedJdbcTemplate 仅选择一个字符串值
【发布时间】:2021-03-02 09:23:16
【问题描述】:

有一张桌子

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,

【问题讨论】:

    标签: sql spring kotlin jdbc spring-jdbc


    【解决方案1】:

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

         @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,这也不是什么大问题。

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • @Twisteton 可能是。我是一个 Java 人,几乎不知道 kotlin。如果您有足够的信心,请随意编辑。
      猜你喜欢
      • 1970-01-01
      • 2021-01-19
      • 1970-01-01
      • 2014-04-03
      • 2015-09-13
      • 2020-03-27
      • 2016-05-18
      • 1970-01-01
      • 2019-05-25
      相关资源
      最近更新 更多