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]

    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • jinhanjiang 2008-10-07 17:18

    对了查询出来是返回是一个Object这个Object是怎么对应存查询的数据,如何取出来了.我只知道queryForList用法

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题