JAVA 泛型BaseDao<T> BaseService <T>
2015-07-31 15:30
253 查看
model 层
BaseDao
BaseDaoImpl
BaseService
BaseServiceImpl
UserService
UserServiceImpl
StudentService
StudentServiceImpl
TestDemo
package com.maomao.model; import java.io.Serializable; public class User implements Serializable{ /** * */ private static final long serialVersionUID = 1L; private Long id; private String name; private String age; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAge() { return age; } public void setAge(String age) { this.age = age; } }
package com.maomao.model; import java.io.Serializable; public class Student implements Serializable{ /** * */ private static final long serialVersionUID = 1L; private Long id; private String name; private String age; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAge() { return age; } public void setAge(String age) { this.age = age; } }
BaseDao
package com.maomao.dao; import java.io.Serializable; import java.util.List; public interface BaseDao<T> { void add(T o); void del(Class<T> c, Serializable id); List<T> findAll(); public T getById(Serializable id); public void update(T o); }
BaseDaoImpl
package com.maomao.dao.impl; import java.io.Serializable; import java.lang.reflect.ParameterizedType; import java.util.List; import com.maomao.dao.BaseDao; public class BaseDaoImpl<T> implements BaseDao<T>{ @Override public void add(T o) { System.out.println(o.getClass().getName()+":保存方法"); } @Override public void del(Class<T> c, Serializable id) { System.out.println(c.getClass().getName()+",id="+id+","+":删除方法"); } @Override public List<T> findAll() { Class<T> clazz = (Class<T>)((ParameterizedType)getClass().getGenericSuperclass()).getActualTypeArguments()[0]; System.out.println(clazz.getName()+":查询所有方法"); return null; } @Override public T getById(Serializable id) { Class<T> clazz = (Class<T>)((ParameterizedType)getClass().getGenericSuperclass()).getActualTypeArguments()[0]; System.out.println(clazz.getName()+",id="+id+","+":根据主键ID查询方法"); return null; } @Override public void update(T o) { System.out.println(o.getClass().getName()+":修改方法"); } }
BaseService
package com.maomao.service; import java.io.Serializable; import java.util.List; public interface BaseService<T> { void add(T o); void del(Serializable id); List<T> findAll(); public T getById(Serializable id); public void update(T o); }
BaseServiceImpl
package com.maomao.service.impl; import java.io.Serializable; import java.lang.reflect.ParameterizedType; import java.util.List; import com.maomao.dao.BaseDao; import com.maomao.dao.impl.BaseDaoImpl; import com.maomao.service.BaseService; public class BaseServiceImpl<T> implements BaseService<T> { private BaseDao<T> baseDao = new BaseDaoImpl(); @Override public void add(T o) { baseDao.add(o); } @Override public void del(Serializable id) { Class<T> clazz = (Class<T>)((ParameterizedType)getClass().getGenericSuperclass()).getActualTypeArguments()[0]; baseDao.del(clazz, id); } @Override public List<T> findAll() { baseDao.findAll(); return null; } @Override public T getById(Serializable id) { baseDao.getById(id); return null; } @Override public void update(T o) { baseDao.update(o); } }
UserService
package com.maomao.service; import com.maomao.model.User; public interface UserService extends BaseService<User>{ }
UserServiceImpl
package com.maomao.service.impl; import com.maomao.model.User; import com.maomao.service.UserService; public class UserServiceImpl extends BaseServiceImpl<User> implements UserService { }
StudentService
package com.maomao.service; import com.maomao.model.Student; public interface StudentService extends BaseService<Student>{ }
StudentServiceImpl
package com.maomao.service.impl; import com.maomao.model.Student; import com.maomao.service.StudentService; public class StudentServiceImpl extends BaseServiceImpl<Student> implements StudentService { }
TestDemo
package com.maomao.test; import org.junit.Test; import com.maomao.model.Student; import com.maomao.model.User; import com.maomao.service.StudentService; import com.maomao.service.UserService; import com.maomao.service.impl.StudentServiceImpl; import com.maomao.service.impl.UserServiceImpl; public class TestDemo { @Test public void test1(){ UserService userService = new UserServiceImpl(); User u = new User(); userService.add(u); Student student = new Student(); StudentService studentService = new StudentServiceImpl(); studentService.add(student); } }
相关文章推荐
- 浅谈Java编程中的单例设计模式
- Spring注解@Component、@Repository、@Service、@Controller区别
- SpringMvc下载excel文件
- cxf WebService整合Spring
- Java集合类操作优化总结
- Java导入导出Excel表格
- spring security权限管理手册
- JDK API 1.6中文版和英文版,1.7,1.8英文版分享
- Java在不同的编码下面,一个中文占的字节不同
- 分享java打印简单图形的实现代码
- java.lang.OutOfMemoryError: unable to create new native thread解决方法
- 深入剖析Java中的各种异常处理方式
- 使用springmvc上传文件
- java获取桌面,我的文档路径
- spring mvc使用@InitBinder 标签对表单数据绑定
- eclipse 无线调试
- struts2命名空间namespace和访问路径的关系
- 关于springmvc上传图片
- java学习基础
- 使Eclipse下支持编写HTML/JS/CSS/JSP页面的自动提示