免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1816 | 回复: 2

问个Spring的问题... [复制链接]

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
发表于 2006-12-15 18:41 |显示全部楼层

  1. Dao中使用..下面function
  2.         public List findBySqAndSType(int sq,
  3.                         int stype) {
  4.                 String sql = "from Svc a "
  5.                         + "where a.sq='" + sq +
  6.                         "' and a.stype='" + stype +
  7.                         "' order by no";
  8.                 return getHibernateTemplate().find(sql);
  9.         }
复制代码

但是回传5笔....

  1. List list = stypeDao.findBySqAndSType(sq,stype);

  2. for(int i = 0;i<list.size();i++){
  3.     XXX abc = (XXX) list.get(i);
  4.     System.out.println(abc.getSq());
  5. }
复制代码

回传的笔数是正确的...跟数据库一样...
但是abc.getSq()的数值...却都是一样的...???
是不是我哪里写错了?

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
发表于 2006-12-18 11:57 |显示全部楼层
找到为什麽了....
因为table用annotation 对应...该table没有primary Key/foreign key...
我自己给的@Id放错field...所以笔数正确..但是资料不对....

论坛徽章:
0
发表于 2006-12-18 16:50 |显示全部楼层
Dao中使用..下面function

  1.         public List findBySqAndSType(int sq,
  2.                         int stype) {
  3. [b]
  4.                 String sql = "from Svc a "
  5.                         + "where a.sq='" + sq +
  6.                         "' and a.stype='" + stype +
  7.                         "' order by no";
  8. [/b]
  9.                 return getHibernateTemplate().find(sql);
  10.         }

复制代码


这个是典型的从php或asp中传递过来的坏习惯,有sql-injection漏洞

应该用PrepareStatement.setXXX(1,"value")方法
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP