您的位置:首页 > 编程语言 > Java开发

spring封装dao和service层

2016-01-20 10:33 369 查看
小案例基本没有写接口的习惯了。

封装的不好,还有好多地方要改进尤其是泛型,也请教各位老爷们如何改进,在此谢谢啦。

然后里面的HqlHelper和PageUtil是之前自己封装的分页和hql生成器类。

dao层:

@Repository
public class EntityDao{

@Autowired
private SessionFactory sessionFactory;

public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}

protected Session getSession() {
return sessionFactory.getCurrentSession();
}

public void flushSession(){
getSession().flush();
}

public void clearSession(){
getSession().clear();
}

public void save(Object object){
getSession().save(object);
}

public void update(Object object){
getSession().update(object);
}

public void delete(Object object){
getSession().delete(object);
}

public int delete(String hql,List<Object> params){
Query query = getSession().createQuery(hql);
for(int i=0;i<params.size();i++){
query.setParameter(i,params.get(i));
}
return query.executeUpdate();
}

public void merge(Object object){
getSession().merge(object);
}

public void saveOrUpdate(Object object){
getSession().saveOrUpdate(object);
}

public int executeUpdateSQL(String sql){
Query query = getSession().createSQLQuery(sql);
return query.executeUpdate();
}

public int executeUpdateHql(String hql){
Query query = getSession().createQuery(hql);
return query.executeUpdate();
}

public int executeUpdateHql(String hql,List<Object> params){
Query query = getSession().createQuery(hql);
for(int i=0;i<params.size();i++){
query.setParameter(i,params.get(i));
}
return query.executeUpdate();
}

public Object uniqueResultHql(String hql){
Query query = getSession().createQuery(hql);
return query.uniqueResult();
}

public Object uniqueResultHql(String hql,List<Object> params){
Query query = getSession().createQuery(hql);
for(int i=0;i<params.size();i++){
query.setParameter(i,params.get(i));
}
return query.uniqueResult();
}

public Object uniqueResultSQL(String sql){
Query query = getSession().createSQLQuery(sql);
return query.uniqueResult();
}

public List listHql(String hql){
Query query = getSession().createQuery(hql);
return query.list();
}

public List listHql(String hql,List<Object> params){
Query q = getSession().createQuery(hql);
for(int i=0;i<params.size();i++){
q.setParameter(i,params.get(i));
}
return q.list();
}

public List listSQL(String sql){
Query query = getSession().createSQLQuery(sql);
return query.list();
}

public List listHql(String hql,int curPage,int pageSize){
Query q = getSession().createQuery(hql);
return q.setFirstResult((curPage - 1) * pageSize).setMaxResults(pageSize).list();
}

public List listHql(String hql,List<Object> params,int curPage,int pageSize){
Query q = getSession().createQuery(hql);
for(int i=0;i<params.size();i++){
q.setParameter(i,params.get(i));
}
return q.setFirstResult((curPage - 1) * pageSize).setMaxResults(
96f4
pageSize).list();
}

/**
* in语句
* @param hql
* @param params
* @return
*/
public List listHqlIn(String hql,Object[] ary){
Query q = getSession().createQuery(hql);
q.setParameterList("in",ary);
return q.list();
}

}


service层:

@Service
public class CommonService {

@Autowired
private EntityDao entityDao;

public void flushSession(){
entityDao.flushSession();
}

public void clearSession(){
entityDao.clearSession();
}

@Transactional
public Object get(String id,String className){
if(!CommonUtil.checkABC_(id)){ id = "";}
String hql = "select o from "+className+" o"+" where o.id = "+id;
return entityDao.uniqueResultHql(hql);
}

@Transactional
public Object get(Integer id,String className){
String hql = "select o from "+className+" o"+" where o.id = "+id;
return entityDao.uniqueResultHql(hql);
}

public void saveNoTransational(Object object){
entityDao.save(object);
}

@Transactional
public void save(Object object){
entityDao.save(object);
}

@Transactional
public void update(Object object){
entityDao.update(object);
}

@Transactional
public void delete(Object object){
entityDao.delete(object);
}

@Transactional
public int delete(String hql,List<Object> params){
return entityDao.delete(hql, params);
}

@Transactional
public int executeUpdateSQL(String sql){
return entityDao.executeUpdateSQL(sql);
}

@Transactional
public int executeUpdateHql(String hql){
return entityDao.executeUpdateHql(hql);
}

@Transactional
public int executeUpdateHql(String hql,List<Object> params){
return entityDao.executeUpdateHql(hql, params);
}

@Transactional
public Object uniqueResultSQL(String sql){
return entityDao.uniqueResultSQL(sql);
}

@Transactional
public Object uniqueResultHql(String hql){
return entityDao.uniqueResultHql(hql);
}

@Transactional
public Object uniqueResultHql(String hql,List<Object> params){
return entityDao.uniqueResultHql(hql, params);
}

@Transactional
public List listSQL(String sql){
return entityDao.listSQL(sql);
}

@Transactional
public List listHQL(String hql){
return entityDao.listHql(hql);
}

@Transactional
public List listHQL(String hql,List<Object> params){
return entityDao.listHql(hql, params);
}

@Transactional
public PageUtil listByHqlHelper(HqlHelper hqlHelper,PageUtil pageUtil){
List rows = entityDao.listHql(hqlHelper.getHQL(), hqlHelper.getPatams(),pageUtil.getPageNo(),pageUtil.getPageSize());
long total = (long)entityDao.uniqueResultHql(hqlHelper.getCountHQL(), hqlHelper.getPatams());
pageUtil.setRows(rows);
pageUtil.setTotal((int)total);
return pageUtil;
}

@Transactional
public List listHqlIn(String hql,Object[] ary){
return entityDao.listHqlIn(hql,ary);
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: