zoukankan      html  css  js  c++  java
  • 项目(1)----用户信息管理系统(3)---项目开发(业务处理层)

    项目开发---业务处理层

     这里主要实现下面两个包中的类,其实性质和Dao和Dao的实现类一样,但为了规范,这里在写接口和实现类

         1.com.study.user.service   //接口包

                1.UserService.java

        2. com.study.user.service.impl  //实现接口类

                1.UserServiceImpl.java

       3.DaoFacotory 类

       4.Globals类

       1.UserService.java

    import java.util.List;
    
    import com.study.user.model.User;
    
    public interface UserService {
     
         public void add(User user);
            
            public void del(String id);
            
            public void update(User user);
            
            public User  find(String id);
            
            public List<User> getAll();
    }

    2.UserServiceImpl.java

     1 import java.util.List;
     2 
     3 import com.study.user.dao.UserDao;
     4 import com.study.user.dao.impl.UserDaoImpl;
     5 import com.study.user.model.User;
     6 import com.study.user.service.UserService;
     7 import com.study.user.utils.DaoFacotory;
     8 
     9 public class UserServiceImpl implements UserService{  
    10     
    12 //    private UserDao dao =new UserDaoImpl(); 如果用这种模式那么每次调用都会创建一个对象,而通过下面就只创建一个对象
    13     
    14     private UserDao udao=DaoFacotory.getInstance().createDao("com.guigu.user.dao.impl.UserDaoImpl", UserDao.class);
    15     
    16     public void addUser(User user) {
    17           udao.add(user); 
    18     }
    19 
    20     public List<User> getAll() {       
    21         return udao.getAll();
    22     }
    23 
    24     public void del(String id) {
    25         udao.del(id);        
    26     }
    27 
    28     public void update(User user) {
    29         udao.update(user);        
    30     }
    31 
    32     public User find(String id) {
    33         
    34         return udao.find(id);
    35     }
    36 }

     3.DaoFacotory 类

     1 import com.study.user.dao.UserDao;
     2 /*
     3  * 这个通过单例模式来获得一个对象,在通过这个对象调用createDao方法,返回的也永远是同一个对象,这个很有用
     4  */
     5 public class DaoFacotory {
     6 
     7     private DaoFacotory() {
     8 
     9     }
    10 
    11     private static final DaoFacotory facotory = new DaoFacotory();
    12 
    13     // 提供共有的方法获取实例对象
    14     public static DaoFacotory getInstance() {
    15         return facotory;
    16     }
    17     /*根据不同的Dao类型创建不同的对象
    18      * 得到对象:DaoFacotory.getInstance().createDao("com.study.user.dao.impl.UserDaoImpl", UserDao.class);
    19      */
    20     public <T> T createDao(String className, Class<T> clazz) {
    21         try {
    22             T t = (T) Class.forName(className).newInstance();
    23             return t;
    24         } catch (Exception e) {
    25             System.out.println("这里错了");
    26             throw new RuntimeException();
    27         }
    28     }
    29 }

     4.Globals类

    /*
     * 因为我的兴趣爱好和类型是写在java类中而不是写在jsp界面中的,目的也是有更好的可操作性,所以单独建立这个类
     * 
     */
    public class Globals {
        
        public static String [] preferences ={"唱歌","跳舞","睡觉","学习","游戏","篮球"};
        
        public static String [] types={"博士生","研究生","本科生","专科生","高中生"};
    }
  • 相关阅读:
    "无法在证书存储区中找到清单签名证书"的解决办法
    ASP.net从服务器端向客户端弹出alert对话框,但不使页面变成白板
    C#日期相关操作
    在Lucene.net实现自定义排序
    做技术二十多年 突然明白的道理
    .net中sql防止注入式攻击
    开发可统计单词个数的Android驱动程序(1)
    乐博Android客户端(新浪微博)1.01发布,欢迎各位童鞋试用
    百度面试题:求绝对值最小的数
    赶紧升级到Android 2.3.4,体验最新的Android技术
  • 原文地址:https://www.cnblogs.com/qdhxhz/p/6416877.html
Copyright © 2011-2022 走看看