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

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

 

 

 

例子一:

public int executeSQL(String sql, Map 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 map = new HashMap(); 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语句,但是数据库不更新,不知道为什么。

你可能感兴趣的:(Hibernate)