使用泛型定义一个可重用的Dao
2015-05-01 11:00
309 查看
dao用来和数据库进行交互,一个项目中,可能有用户表,产品表等等,不可能为每一个表都建立一个dao,使用泛型可以实现通吃。
UserDao.java
调用它:
如果使用了hibernate框架,则要实现面向接口的编程,那么怎样在接口中定义泛型呢?
IUserDao.java
UserDao2.java
调用方法还是和以前一样:
UserDao.java
public class UserDao <T>{ public int add(T t){ return 0; } public int delete(int id){ return 0; } public int delete(T t){ return 0; } public T update(T t){ return null; } public T findById(int id){ return null; } public List<T> findByConditions(String where){ return null; } }
调用它:
@Test public void test5(){ UserDao<Person> dao = new UserDao<Person>(); dao.add(new Person()); Person result = dao.findById(1); }
如果使用了hibernate框架,则要实现面向接口的编程,那么怎样在接口中定义泛型呢?
IUserDao.java
public interface IUserDao <T>{ public int add(T t); public int delete(int id); public int delete(T t); public T update(T t); public T findById(int id); public List<T> findByConditions(String where); }
UserDao2.java
public class UserDao2<T> implements IUserDao<T> { @Override public int add(T t) { // TODO Auto-generated method stub return 0; } @Override public int delete(int id) { // TODO Auto-generated method stub return 0; } @Override public int delete(T t) { // TODO Auto-generated method stub return 0; } @Override public T update(T t) { // TODO Auto-generated method stub return null; } @Override public T findById(int id) { // TODO Auto-generated method stub return null; } @Override public List<T> findByConditions(String where) { // TODO Auto-generated method stub return null; } }
调用方法还是和以前一样:
@Test public void test6(){ UserDao2<Person> dao = new UserDao2<Person>(); dao.add(new Person()); Person result = dao.findById(1); }
相关文章推荐
- 使用泛型定义一个可重用的Dao
- 使用泛型定义一个可重用的Dao
- 使用泛型定义一个可重用的Dao
- 使用泛型實現可重用的DAO
- 利用泛型自己定义一个简单的集合
- 使用getGenericSuperclass()和getActualTypeArguments()将DAO做成泛型
- 不要重复 DAO! 使用 Hibernate 和 Spring AOP 构建泛型类型安全的 DAO
- 使用getGenericSuperclass()和getActualTypeArguments()将DAO做成泛型
- 使用getGenericSuperclass()和getActualTypeArguments()将DAO做成泛型
- 关于如何使用反射声明一个泛型类型变量(泛型参数是动态的)的问题
- 从数据库各种定义中找一个关键字的使用位置
- (vs2008链接错误LK200x:xxx在yyy.obj中已定义或xxx在yyy中以被引用):一个全局的变量想在多个cpp文件中使用
- 请定义一个宏,比较两个数a、b的大小,不能使用大于、小于、if语句
- 请定义一个宏,比较两个数a、b的大小,不能使用大于、小于、if语句
- 求解???使用hibernate配置一个定义好的数据库。学生-课程-成绩
- 使用xib定义一个自定义Cell
- 使用getGenericSuperclass()和getActualTypeArguments()将DAO做成泛型
- Android 使用dimens定义控件尺寸,增加控件重用性
- 定义一个宏,比较两个数a、b的大小,不能使用大于、小于、if语句
- Android之greenDao,一个orm的使用