web项目抽取BaseDao
来源:互联网 发布:卸载软件需要密码 编辑:程序博客网 时间:2024/06/06 20:31
使用的Hibernate框架连接数据库
第一步:创建BaseDao接口和BaseDaoImpl实现类
BadeDao接口package cn.ex.dao;import java.util.List;public interface BaseDao<T> {
//添加void save(T t);
//删除void delete(T t);
//修改void update(T t);
//根据ID查数据T findById(int id);
//查询所有数据List<T> findAll();}BaseDaoImpl实现类
package cn.ex.dao.impl;import java.lang.reflect.ParameterizedType;import java.lang.reflect.Type;import java.util.List;import org.springframework.orm.hibernate4.support.HibernateDaoSupport;import org.springframework.transaction.annotation.Transactional;import cn.ex.dao.BaseDao;@Transactional@SuppressWarnings("all")public class BaseDaoImpl<T> extends HibernateDaoSupport implements BaseDao<T> {private Class pClass;public BaseDaoImpl() {/* * 获取参数类型 * Class class=this.getClass(); * Type type=class.getGenericSuperclass(); * ParameterizedType pType= (ParameterizedType)(type); * Type[] types=pType.getActualTypeArguments(); * pClass=(Class<T>) types[0]; */pClass=(Class<T>)(((ParameterizedType)(this.getClass().getGenericSuperclass())).getActualTypeArguments()[0]);}//添加public void save(T t) {this.getHibernateTemplate().save(t);}//删除public void delete(T t) {this.getHibernateTemplate().delete(t);}//修改public void update(T t) {this.getHibernateTemplate().saveOrUpdate(t);}//根据ID查询对象public T findById(int id) {return (T) this.getHibernateTemplate().get(pClass, id);}//查询所有数据public List<T> findAll() {String sql="from"+pClass; return (List<T>) this.getHibernateTemplate().find(sql);}}
CustomerDao接口
package cn.ex.dao;import java.util.List;import cn.ex.entity.Customer;public interface CustomerDao extends BaseDao<Customer>{//多条件查询List<Customer> findBy(Customer customer);}CustomerImpl实现类
package cn.ex.dao.impl;import java.util.List;import org.hibernate.criterion.DetachedCriteria;import org.hibernate.criterion.Restrictions;import org.springframework.transaction.annotation.Transactional;import cn.ex.dao.CustomerDao;import cn.ex.entity.Customer;@Transactional@SuppressWarnings("all")public class CustomerDaoImpl extends BaseDaoImpl<Customer> implements CustomerDao {//多条件查询public List<Customer> findBy(Customer customer) {DetachedCriteria criteria=DetachedCriteria.forClass(Customer.class);if (null!=customer.getcName()&& "".equals(customer.getcName())) {criteria.add(Restrictions.eq("cName", customer.getcName()));}if (null!=customer.getcLevel()&& "".equals(customer.getcLevel())) {criteria.add(Restrictions.eq("cLevel", customer.getcLevel()));}if (null!=customer.getcSource()&& "".equals(customer.getcSource())) {criteria.add(Restrictions.eq("cSource", customer.getcSource()));}if (null!=customer.getcPhone()&& "".equals(customer.getcPhone())) {criteria.add(Restrictions.eq("cPhone", customer.getcPhone()));}if (null!=customer.getcMobile()&& "".equals(customer.getcMobile())) {criteria.add(Restrictions.eq("cMobile", customer.getcMobile()));}return (List<Customer>) this.getHibernateTemplate().findByCriteria(criteria);}}
水平有限,作为复习查询之用,有什么错误之处,请留言指教!
阅读全文
0 0
- web项目抽取BaseDao
- baseDao抽取
- CRM-BaseDao的抽取
- SSH抽取BaseDao
- BaseDao的抽取
- Dao操作的抽取, BaseDao
- BaseDao --- dao层的抽取
- 三层框架下的BaseDao的抽取
- java web项目DAO层通用接口BaseDao与实现类BaseDaoImpl
- java web项目DAO层通用接口BaseDao与实现类BaseDaoImpl
- 共享近期项目的BaseDAO
- springMVC项目中整合BaseDao
- BaseDAO
- basedao
- BaseDao
- baseDao
- BaseDao
- BaseDao
- java中equals方法的用法以及==的用法(转)
- 首页地图渲染之国际化(三)---趋势图联动显示
- jquery操作动态生成的元素
- Android研究_Gralloc_4alloc设备open过程分析
- 阿里云“万亿苏醒计划”:AIoT智联网的伟大使命
- web项目抽取BaseDao
- 五大框架
- SQL 语法
- Python 计算彩色图像信噪比
- IntelliJ IDEA之项目热部署设置,解决为什么修改jsp或html页面,需要重启服务才能生效!
- CXF的一些简单简介及用法
- 最大公约数(性能)
- 关于web程序调试相关工具谷歌访问助手,和测试 POST 请求客户端工具,Advanced REST Client的下载和安装
- 【浏览器】关于浏览器的一些快捷设置