hibernate

                         菜鸟学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);
        }
    }

总结:

刚学习时,只掌握一些基本的方法,能够实现基本的功能。具体的使用待续.......

相关推荐