菜鸟学Hibernate的使用<一>
1.首先在dao中得到Hibernate对象:
public HibernateTemplate hibernateTemplate;
@Resource
public void setHibernateTemplate(HibernateTemplate hibernateTemplate) {
this.hibernateTemplate = hibernateTemplate;
}
2.saveOrUpdate(); 跟新或者保存方法
3.save(); 仅仅执行保存方法
4.execute(); 执行方法;
/**
* 通过ID批量更新字段
*/
public void updateByColumn(String column, Object val, final Object[] ids) {
final String hql= String.format("update %s set %s=%s where id in (:ids)", entityClass.getName(), column, val);
hibernateTemplate.execute(new HibernateCallback() {
public Object doInHibernate(Session session) throws HibernateException {
Query query = session.createQuery(hql);
query.setParameterList("ids", ids);
return query.executeUpdate();
}
});
}
/**
* 执行SQL:update或delete
*/
public void executeSQL(final String sql, final List parameters){
hibernateTemplate.execute(new HibernateCallback() {
public Object doInHibernate(Session session) throws HibernateException {
Query query = session.createQuery(sql);
if(parameters!=null && parameters.size()>0){
for (int i = 0; i < parameters.size(); i++){
query.setParameter(i, parameters.get(i));
}
}
return query.executeUpdate();
}
});
}
/**
* 通过SQL查询
*/
public List queryBySQL(final String sql, final List parameters){
List list = (List)hibernateTemplate.execute(new HibernateCallback() {
public Object doInHibernate(Session session) throws HibernateException {
Query query = session.createQuery(sql);
if(parameters!=null && parameters.size()>0){
for (int i = 0; i < parameters.size(); i++){
query.setParameter(i, parameters.get(i));
}
}
return query.list();
}
});
return list;
}
5.delete(entry); 按照对象删除,
6.findByCriteria(criteria) ;通过对象查询;
public List<CmsArticle> findByProgramId(String oid,boolean ispage) {
DetachedCriteria criteria=DetachedCriteria.forClass(CmsArticle.class);
criteria.add(Restrictions.eq("programId", oid));
criteria.add(Restrictions.eq("delFlag", 0));
criteria.addOrder(Order.desc("sortNo"));
if(ispage){
return(List<CmsArticle>) this.hibernateTemplate.findByCriteria(criteria,0,5);
}else{
return(List<CmsArticle>) this.hibernateTemplate.findByCriteria(criteria);
}
}
总结:
刚学习时,只掌握一些基本的方法,能够实现基本的功能。具体的使用待续.......