book_88homework 2008-10-02 21:22
浏览 214
已采纳

spring jdbctemplate 设计的问题

simplespringtemplate 提供了对jdbc的包装,并提供了一些方便的方法,但是在进行选择的时候还是感觉不方便。



假设有数据表:user ,包含属性 Long id,String name ,int salary,如果我要查询工资为234的用户,设想生成的语句为:

select * from user where age=234


如果使用jdbctemplate则需要使用如下代码:



simplejdbctemplate.queryForObject("select * from user where age =?",new UserMapper(),salary);




执行的SQL语句为:



select * from user where age='234'


这并不是我想生成的sql语句,如果要生成需要的sql语句采用simplejdbctemplate就没有办法实现了,应为没有提供设置preparedstatement设置的方法,在jdbctemplate中也没有针对单独选择一条记录并采用preparedstatement作为参数的方法,感觉用起来不方便,不知道各位有没有好的解决方法?






问题补充:
一楼提供的方法可以,但是如果有多个参数呢?

比如

select * from user where age =? and name=?,应该如何处理,貌似不接受指定多个不同的参数类型:(
  • 写回答

2条回答 默认 最新

  • sptzone 2008-10-03 22:01
    关注

    [quote]应为没有提供设置preparedstatement设置的方法[/quote]

    spring的jdbcTemplate的实现,就是通过PreparedStatement实现的。

    [code="java"]select * from user where age=234 [/code]
    [code="java"]select * from user where age='234' [/code]

    实现楼主的功能,可以通过:
    [code="java"]simplejdbctemplate.queryForObject("select * from user where age =?",new Object[]{salary},Integer.class); [/code]

    或者
    [code="java"]simplejdbctemplate.queryForObject("select * from user where age =?",new Object[]{salary},Long.class); [/code]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?