java项目常用 BaseDao BaseService

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 }

你可能感兴趣的:(service)