zoukankan      html  css  js  c++  java
  • 使用泛型定义一个可重用的Dao

    dao用来和数据库进行交互,一个项目中,可能有用户表,产品表等等,不可能为每一个表都建立一个dao,使用泛型可以实现通吃。

    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);
        }
  • 相关阅读:
    348. Design Tic-Tac-Toe
    347. Top K Frequent Elements
    346. Moving Average from Data Stream
    345. Reverse Vowels of a String
    343. Integer Break
    342. Power of Four
    341. Flatten Nested List Iterator
    340. Longest Substring with At Most K Distinct Characters
    339. Nested List Weight Sum
    Python(九) Python的高级语法与用法
  • 原文地址:https://www.cnblogs.com/lenve/p/4518000.html
Copyright © 2011-2022 走看看