DB2中sql语句占位符问题


初到公司实习,让做一个网站,使用struts2+spring框架,数据库使用的是DB2,以前没接触过DB2,对它不了解。在写sql语句的时候遇到一些问题,首先就是在mysql下的limit到了DB2中需要改成fetch first 数字 rows only的形式。还有是在使用Spring的JdbcTemplate进行查询时sql语句占位符的问题,在where语句中使用"?"占位符是没有问题的,但是在这之外使用"?"占位符就会出现问题。

sql如下:

select USER_NAME,PIC_URL,COUNTY_NAME,STAR_RANK,NEW_BUSI_RANK,REDEEM_RANK,POPULAR_RANK
from TF_SERVSTAR_RANK_DETAIL as a,
TF_SERVSTAR_RACE_USER as b
where b.USER_TYPE = ? and a.BOSS_ID = B.BOSS_ID 
order by ? desc 
fetch first ? rows only
这样执行时会报错,提示占位符“?”是非法字符。在网上查了资料,说在where语句之外的地方需要使用类似 cast(? as varchar(8))的形式来显式的转换为指定类型,但是我给"limit"的整数使用 cast(? as integer)的形式时还是会报错。由于我对DB2不熟,也没找到解决的办法,最后只能使用拼接字符串的形式将整数传过去。

去到公司才知道自己在学校学的知识基本没用额,虽然自己也自学了ssh2等开源框架,但是由于平时练习的不够,很多知识都记不太清除了,导致我的开发速度很慢.....还有就是数据方面的知识,由于经验少,写的sql效率都不高,平时自己也只是用用mysql,去到公司发现都是使用的oracle和db2。希望在公司实习的这几个月能够提升自己的能力,就要毕业了,我选择了实习而不是培训,就是想到企业中去接触一下真实的项目开发流程,积累一些开发经验,所以越是困难的问题,我就应该越是认真的攻克它!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值