-
Hibernate中HQL语句写法
添加时间:2013-5-29 点击量:开端项目中HQL语句写的斗劲随便,后来看了下Hibernate 中Query和Criteria API,和sql语句的编译过程 。懂得查询前提不要直接应用字符串拼接,可以大大进步sql语句履行效力,代码也加倍规范安然。
query 的根蒂根基写法:
应用“=:xx” 标识变量
setString(xx, ....) 插入对应的搜刮前提
public String DocSerialNo(String perType, String organId) {
String Hql = LicenceSerialNo set curnum=curnum+1 where curareaid=:organId and areaid=:perType;
Query qr=this.getSession().createQuery(Hql);
qr.setString(organId, organId);
qr.setString(perType, perType);
int i=qr.executeUpdate();
if(i<1)return null;
String findSerialHql= LicenceSerialNo where curareaid=:organId and areaid=:perType;
Query findQr=this.getSession().createQuery(findSerialHql);
findQr.setString(organId, organId);
findQr.setString(perType, perType);
LicenceSerialNo licSerial=(LicenceSerialNo) findQr.list().get(0);
String licNo=licSerial.getLicencetype()+new DecimalFormat(0000).format(licSerial.getCurnum());
return licNo;
}
criterial 应用:
cr.add() 在sql语句后拼接查询限制前提
Restrictions类供给了查询限制机制。它供给了很多办法,以实现查询限制.
Criteria cr = session.createCriteria(Student.class); //生成一个Criteria对象
cr.add(Restrictions.eq(name, Bill));//等价于where name=’Bill’
List list = cr.list();
Student stu = (Student)list.get(0);
System.out.println(stu.getName());
我们永远不要期待别人的拯救,只有自己才能升华自己。自己已准备好了多少容量,方能吸引对等的人与我们相遇,否则再美好的人出现、再动人的事情降临身边,我们也没有能量去理解与珍惜,终将擦肩而过。—— 姚谦《品味》