SSH框架学习开发第一个集合项目经验02

拿一个单元测试来替代网页中具体调用

 1 package com.sisi.registration_service;
 2 
 3 import org.junit.Assert;
 4 import org.junit.Test;
 5 /*这个项目的工作流程就是client调用userManager通过定义来实现接口的实现,可以用不同的
 6  *userManagerImpl来实现它的接口,然后调用具体服务层实现类中的函数进行数据的增删改查,
 7  *但是在实现类中又是调用的DAO层的接口,然后具体的DAOImpl去实现服务层实现类的增删改查,
 8  *然后DAOImpl中又是调用了hibernate来实现的数据库的增删改查
 9  * */
10 import com.sisi.registration.model.User1;
11 import com.sisi.registration.service.UserManager;
12 import com.sisi.registration.service.impl.UserManagerImpl;
13 
14 public class UserManagerTest {
15 
16     @Test
17     public void testExists() throws Exception{
18         UserManager um = new UserManagerImpl();
19         User1 u = new User1();
20         u.setUsername("a");
21         boolean exists = um.exists(u);
22         Assert.assertEquals(true, exists);
23     }
24     
25     @Test
26     public void testAdd() throws Exception{
27         UserManager um = new UserManagerImpl();
28         User1 u = new User1();
29         u.setUsername("b");
30         u.setPassword("b");
31         boolean exists = um.exists(u);
32         if(!exists){
33             um.add(u);
34             u.setUsername("b");
35             Assert.assertEquals(true, um.exists(u));
36         }
37         else{
38             Assert.fail("Not add!");
39         }
40         
41     }
42 }

这里面就包含了我自己对目前做到第二遍的注册功能的理解。

目前总的层次可分为:

client     jsp      usermanager      usermanagerimpl        User      userDao     userDaoimpl       DB     

     jsp为表现层次            service为逻辑层                                          数据库存取层

关于service层的作用简述:有时候会产生疑问,为什么多此一举写一个service层,只是调用了相同功能的函数像是exists调用了checkUserExistsWithName,当初最夸张的是后面函数就是直接从前边的拷贝过去的,这样不是多此一举,没有这个层次也一样。但是要想到其实这个服务层中可能同时调用多个dao来实现一个功能,那么它就是不可取代的。

快捷键

快速引入=ctrl+shift+o

快速构建get set函数=shift+alt+s

原文地址:https://www.cnblogs.com/sisi-job/p/6636990.html