浏览 2989 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-10-11
PreparedStatement ps = con.prepareStatement("select * from user where id=?:) ps.setLong(1,new Long(100)); 这时通过p6spy监控的sql语句为: select * from user where id=100 如果采用spring jdbctemplate对数据库进行操作,代码如下: jdbcTemplate.queryForObject("select * from user where id=?", new Object[]{new Long(100)}, new int[]{Types.BIGINT}); 这时同通过p6spy监控的sql语句为: select * from user where id='100' 但是通过跟踪springtemplate源代码发现,指定的参数类型Types.BIGINT已经传入了参数设定的方法中,值为-5,也按照相应的类型进行了设置,相当于执行了 ps.setLong(1,new Long(100)); 但是p6spy并没有输出 select * from user where id=100 当使用p6spy监控Hibernate同样的方法生成的语句时也能够正确的输出: select * from user where id=100 看来p6spy有时也会些“欺骗”行为:) 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |