java项目常用 BaseDao BaseService



java项目常用 BaseDao BaseService

 

http://blog.csdn.net/morning99/article/details/8630683

IBaseDao

复制代码
 1 package com.glht.sim.dao;
 2 
 3  import java.util.List;
 4 
 5 
 6  public interface IBaseDao<T> {
 7     T get(long id);
 8     void create(T t);
 9     void delete(T t);
10     void update(T t);
11     int getTotalCount();
12     List<T>getPage(int startIndex,int count);
13     List<T> getAll();
14 }
复制代码

BasoDao

复制代码
 1 package com.glht.sim.dao.impl;
 2 
 3 import java.lang.reflect.ParameterizedType;
 4 import java.sql.SQLException;
 5 import java.util.List;
 6 
 7 import org.hibernate.HibernateException;
 8 import org.hibernate.Session;
 9 import org.springframework.orm.hibernate3.HibernateCallback;
10 import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
11 
12 import com.glht.sim.dao.IBaseDao;
13 
14 public abstract class BaseDao<T> extends HibernateDaoSupport implements IBaseDao<T> {
15     protected Class<T> entityClass;
16     protected String className;
17     public BaseDao(){
18         entityClass=(Class<T>)((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[0];
19         className=entityClass.getName();
20     }
21     public T get(long id){
22         return (T)this.getHibernateTemplate().get(entityClass, id);
23     }
24     public void create(T t){
25         this.getHibernateTemplate().save(t);
26     }
27     public void delete(T t){
28         this.getHibernateTemplate().delete(t);
29     }
30     public void update(T t){
31         this.getHibernateTemplate().update(t);
32     }
33     
34     public int getTotalCount(){
35         
36         Object obj=this.getHibernateTemplate().execute(new HibernateCallback(){
37             public Object doInHibernate(Session session)
38                 throws HibernateException, SQLException{
39                 
40                 return session.createQuery("select count(id) from "+className).uniqueResult();
41             }
42         });
43         return (int)((Long)obj).longValue();
44     }
45     public List<T>getPage(int startIndex,int count) {
46         
47         return (List<T>)this.getHibernateTemplate().executeFind(
48                 new PageHibernateCallback(
49                         "from "+className+" as c order by c.id desc",startIndex,count));
50     }
51     
52     public List<T> getAll(){
53         return (List<T>)this.getHibernateTemplate().find("from "+className+" as c order by c.id desc");
54     }
55 }
复制代码


IBaseService

复制代码
 1 package com.glht.sim.service;
 2 
 3 import java.util.List;
 4 
 5 
 6 public interface IBaseService<T> {
 7     T get(long id);
 8     void create(T obj);
 9     
10     void delete(T obj);
11     void update(T obj);
12     int getTotalCount();
13     List<T> getPage(int startIndex,int count);
14     List<T> getAll();
15 }
复制代码

BaseService

复制代码
 1 package com.glht.sim.service.impl;
 2 
 3 import java.util.List;
 4 
 5 import com.glht.sim.dao.IBaseDao;
 6 import com.glht.sim.service.IBaseService;
 7 
 8 public abstract class BaseService<T> implements IBaseService<T> {
 9     protected IBaseDao<T> dao;
10     
11     public T get(long id){
12         return dao.get(id);
13     }
14     
15     public void create(T obj){
16         dao.create(obj);
17     }
18     
19     public void delete(T obj){
20         dao.delete(obj);
21     }
22     public void update(T obj){
23         dao.update(obj);
24     }
25 
26     public int getTotalCount(){
27         return dao.getTotalCount();
28     }
29     
30     public List<T> getPage(int startIndex,int count){
31         return dao.getPage(startIndex,count);
32     }
33     
34     public List<T> getAll(){
35         return dao.getAll();
36     }
37     
38     public void setDao(IBaseDao<T> dao) {
39         this.dao = dao;
40     }
41     
42 }