hibernate实现增删改查的各种方法

1》接口(主要是增删改查的接口)BaseDao.java
/**
 *
 * @author fly.zhou
 */
public interface IBaseDao {

    //增加对应实体的一条记录  
    public boolean save(Object o);

    //更新对应实体的一条记录
    public boolean update(Object o);

    //增加或者更新对应实体的一条记录
    public boolean saveOrUpdate(Object o);

    //保存一系列对象集合
    public boolean saveOrUpdateAll(Collection l);

    //删除对应实体的一条记录
    public boolean delete(Object o);

    //根据id删除对应实体的一条记录
    public boolean delete(Class c, Serializable id);

    //执行hql语句删除一条记录
    public Integer delete(String hql, Object... values);

    //删除一系列数据
    public boolean deleteAll(Collection l);

    //执行hql语句查找
    public List find(String hql);

    //分页查询,多参数条件
    public List find(String hql, DataGridReq dgr, List values);

    //分页查询,多参数条件
    public List find(String hql, DataGridReq dgr, Object... values);

    //不带分页查询,多参数条件
    public List find(String hql, Object... values);
    
    //不带分页查询,多参数条件
    public boolean update(String hql, Object... values);

    //根据主键ID查询对应实体的一条记录
    public Object get(Class clazz, Serializable id);

    //获取某实体对象
    public Object load(Class c, Serializable id);

    //获取总记录数
    public Long total(String hql, List values);

    //获取总记录数
    public Long total(String hql, Object... values);

    //更新对应实体的某一条记录
    public boolean updateOneByProperty(Class clazz, Serializable id, String pName, Object pValue);

    //更新对应实体的某几条记录
    public boolean updateOneByPropertys(Class clazz, Serializable id, List<String> pName, List<Object> pValue);

    //更新对应实体的某几条记录(封装成map)
    public boolean updateOneByPropertys(Class clazz, Serializable id, Map<String, Object> map);

    //根据属性名以及对应的属性值查找一条记录
    public Object getSingleByProperty(Class clazz, String pName, Object pValue);

    //判断是否有对应的属性名和属性值存在,存在返回true
    public boolean ifHasOneByProperty(Class clazz, String pName, Object pValue);

    //根据一系列属性以及对应的属性值查询一条记录
    public Object getSingleByPropertys(Class clazz, List<String> pName, List<Object> pValue);

    //判断是否有一系列对应的属性名和属性值存在,存在返回true
    public boolean ifHasOneByPropertys(Class clazz, List<String> pName, List<Object> pValue);

    //根据一系列属性以及对应的属性值(封装成Map)查询一条记录
    public Object getSingleByPropertys(Class clazz, Map<String, Object> map);

    //判断是否有一系列对应的属性名和属性值(封装成Map)存在,存在返回true
    public boolean ifHasOneByPropertys(Class clazz, Map<String, Object> map);

    //通过某一对应的属性名和属性值,查询某一个属性的值
    public Object getValueByPropertys(Class clazz, Map<String, Object> map, String selectName);

    //通过一系列对应的属性名和属性值,查询某一个属性的值
    public Object getValueByProperty(Class clazz, String pName, Object pValue, String selectName);

    //通过一系列对应的属性名和属性值,查询某一个属性的值
    public Object getValueByPropertys(Class clazz, List<String> pNames, List<Object> pValues, String selectName);

    //查询对应实体的所有记录
    public List<Object> getObjects(Class clazz);

    //查询符合属性名以及对应的属性值的一系列记录
    public List<Object> getObjectsByProperty(Class clazz, String pName, Object pValue);

    //根据任意属性查询名以及对应的属性值的一系列记录
    public List<Object> getObjectsByAnyProperty(Class clazz, List<String> pName, List<Object> pValue);

    //查询符合一系列属性名以及对应的属性值的一系列记录
    public List<Object> getObjectsByPropertys(Class clazz, List<String> pName, List<Object> pValue);

    //根据某属性对应的属性值在某一范围内的一系列记录
    public List<Object> getObjectsByProperty(Class clazz, String pName, String operator, Object pValue);

    //根据某属性对应的属性值在某一范围内的一系列记录
    public List<Object> getObjectsByPropertys(Class clazz, List<String> pName, List<String> operator, List<Object> pValue);
}


2》接口的实现 BaseDaoImpl.java

public class BaseDaoImpl implements IBaseDao {

    private static final Logger logger = Logger.getLogger(BaseDaoImpl.class);
    private HibernateTemplate hibernateTemplate;

    public HibernateTemplate getHibernateTemplate() {
        hibernateTemplate.setCacheQueries(true);// 开启二级查询缓存
        return hibernateTemplate;
    }

    @Autowired
    public void setHibernateTemplate(HibernateTemplate hibernateTemplate) {
        this.hibernateTemplate = hibernateTemplate;
    }

    @Override
    public boolean delete(Object o) {
//        logger.info("删除");
        try {
            this.getHibernateTemplate().delete(o);
            return true;
        } catch (Exception e) {
            return false;
        }
    }

    @Override
    public boolean delete(Class c, Serializable id) {
//        logger.info("删除");
        try {
            this.getHibernateTemplate().delete(get(c, id));
            return true;
        } catch (Exception e) {
            return false;
  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值