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);
}
}
封装的不好,还有好多地方要改进尤其是泛型,也请教各位老爷们如何改进,在此谢谢啦。
然后里面的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);
}
}
相关文章推荐
- struts2上传
- Spring注解详解
- 关于eclipse中工程project的实质区别研究与猜测
- SpringMVC中使用Interceptor拦截器
- java基础语法与进阶
- java变量初始化顺序
- Java中的堆和栈的区别
- eclipse4 使用maven创建web项目
- eclipse svn插件下载网址
- mx4 如何连接eclipse
- 用eclipse开发web工程时WebRoot和WebContent什么区别?怎么有时WebRoot,而有时没有呢,请帮一下忙。
- Java详解之——异常机制
- java定时器几种方式
- eclipse的 wst 怎么解释
- Struts 往jsp页面传值的三种方式 以及获取Jsp页面值得一种方式
- Myeclipse 显示断点调试工具条
- java web如何获取ServletContext
- JAVA多线程实现方式
- java--多线程与juc
- java生成二维码图片