hibernate 直接执行hql语句的代码写法

用Hibernate直接执行hql语句,不直接操纵对象

例子一:

public int executeSQL(String sql, Map<String, Object> params) { SQLQuery sqlquery = getSession().createSQLQuery(sql); if (params != null) { sqlquery.setProperties(params);//传值 } return sqlquery.executeUpdate(); }

例子二:

public void updateParameter(String configureid, String configurevalue) { String hql = "UPDATE Ffconfigure SET configurevalue=:configurevalue WHERE configureid=:configureid"; SQLQuery sqlquery = getSession().createSQLQuery(hql); Map<String,Object> map = new HashMap<String,Object>(); map.put("configurevalue",configurevalue); map.put("configureid",configureid); sqlquery.setProperties(map); sqlquery.executeUpdate(); }

例子三:

public void updateParameter(final String configureid, final String configurevalue) throws Exception { getHibernateTemplate().execute(new HibernateCallback() { public Object doInHibernate(Session session) throws HibernateException { String hql = "UPDATE Ffconfigure SET configurevalue=? WHERE configureid=?"; Query q = session.createQuery(hql); q.setString(0, configureid); q.setString(1, configurevalue); q.executeUpdate(); return null; } }); }

例子一,和例子二起始是一样的,都用了SQLQuery ,很好用。

例子三用的是Hibernate的回调,spring配了事务的情况,update时后台会发sql语句,但是数据库不更新,不知道为什么。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值