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条)

报告相同问题?

悬赏问题

  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!