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 }