发表于: 2019-12-03 16:01:50

1 1199


今日想法:


1.测试持久层的接口和实现。

2.测试业务层的接口和实现。

3.测试控制层的接口和实现。

4.排错,改错,再测试,直到成功。

5.贴代码,贴结果。


今日作为:


轮播的持久层的接口的实现

<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >

<!--轮播的持久层的接口的实现-->
<mapper namespace="com.clxs.dao.BannerDao">

<sql id="Banner">
id,right_now,new_time,new_id,update_time,update_id,name,img,url
</sql>

<!--查询上架或下架的轮播图-->
   <select id="SelectByNow" resultType="com.clxs.pojo.BannerPojo">
select <include refid="Banner"/>
from banner
where right_now =#{integer}
</select>

</mapper>

轮播的持久层的接口

package com.clxs.dao;

import com.clxs.pojo.BannerPojo;

import java.util.List;

//轮播的持久层的接口
public interface BannerDao {

//    查询上架或下架的轮播图
   public List<BannerPojo> SelectByNow(Integer integer);

}

轮播的持久层的测试

package com.clxs.dao;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath*:spring/applicationContext.xml"})

public class BannerDaoTest {

@Autowired
   BannerDao bannerDao;

@Test
   public void selectByUp() {
System.out.println(bannerDao.SelectByNow(1));
}

@Test
   public void selectByDown(){
System.out.println(bannerDao.SelectByNow(0));
}

}

轮播的持久层的测试的结果

轮播的业务层的接口的实现

package com.clxs.service.impl;

import com.clxs.dao.BannerDao;
import com.clxs.pojo.BannerPojo;
import com.clxs.service.BannerService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

//轮播的业务层的接口的实现
@Service
public class BannerServiceimpl implements BannerService {

//    引入轮播的持久层的接口
   @Autowired
   private BannerDao bannerDao;

//    查询上架或下架的轮播图
   @Override
   public List<BannerPojo> SelectByNow(Integer integer) {
return bannerDao.SelectByNow(integer);
}

}

轮播的业务层的接口

package com.clxs.service;

import com.clxs.pojo.BannerPojo;
import org.springframework.stereotype.Service;

import java.util.List;

//轮播的业务层的接口
@Service
public interface BannerService {

//    查询上架或下架的轮播图
   public List<BannerPojo> SelectByNow(Integer integer);

}

轮播的业务层的测试

package com.clxs.service;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath*:spring/applicationContext.xml"})

public class BannerServiceTest {

@Autowired
   private BannerService bannerService;

@Test
   public void selectByUp() {
System.out.println(bannerService.SelectByNow(1));
}

@Test
   public void selectByDown(){
System.out.println(bannerService.SelectByNow(0));
}

}

轮播的业务层的测试的结果

导航的持久层的接口的实现

<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >

<!--导航的持久层的接口的实现-->
<mapper namespace="com.clxs.dao.GuideDao">

<sql id="Guide">
id,pid,work_id,right_now,new_time,new_id,update_time,update_id,name
</sql>

<!--查询上架或下架的导航栏的内容-->
   <select id="SelectByNow" resultType="com.clxs.pojo.GuidePojo">
select <include refid="Guide"/>
from Guide
where right_now =#{integer}
</select>

</mapper>

导航的持久层的接口

package com.clxs.dao;

import com.clxs.pojo.GuidePojo;

import java.util.List;

//导航的持久层的接口
public interface GuideDao {

//    查询上架或下架的导航栏的内容
   public List<GuidePojo> SelectByNow(Integer integer);

}

导航的持久层的测试

package com.clxs.dao;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath*:spring/applicationContext.xml"})

public class GuideDaoTest {

@Autowired
   private GuideDao guideDao;

@Test
   public void selectByUp() {
System.out.println(guideDao.SelectByNow(1));
}

@Test
   public void selectByDown(){
System.out.println(guideDao.SelectByNow(0));
}

}

导航的持久层的测试的结果

导航的业务层的接口的实现

package com.clxs.service.impl;

import com.clxs.dao.GuideDao;
import com.clxs.pojo.GuidePojo;
import com.clxs.service.GuideService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

//导航的业务层的接口的实现
@Service
public class GuideServiceimpl implements GuideService {

//    引入导航的持久层的接口
   @Autowired
   private GuideDao guideDao;

//    查询上架或下架的导航栏的内容
   @Override
   public List<GuidePojo> SelectByNow(Integer integer) {
return guideDao.SelectByNow(integer);
}

}

导航的业务层的接口

package com.clxs.service;

import com.clxs.pojo.GuidePojo;
import org.springframework.stereotype.Service;

import java.util.List;

//导航的业务层的接口
@Service
public interface GuideService {

//    查询上架或下架的导航栏的内容
   public List<GuidePojo> SelectByNow(Integer integer);

}

导航的业务层的测试

package com.clxs.service;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath*:spring/applicationContext.xml"})

public class GuideServiceTest {

@Autowired
   private GuideService guideService;

@Test
   public void selectByUp() {
System.out.println(guideService.SelectByNow(1));
}

@Test
   public void selectByDown(){
System.out.println(guideService.SelectByNow(0));
}

}

导航的业务层的测试的结果

内容的持久层的接口的实现

<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >

<!--内容的持久层的接口的实现-->
<mapper namespace="com.clxs.dao.WorkDao">

<sql id="Work">
id,right_now,new_time,new_id,update_time,update_id,name,introduction,img
</sql>

<!--根据导航栏的内容ID查询对应的内容-->
   <select id="SelectByWorkId" resultType="com.clxs.pojo.WorkPojo">
select <include refid="Work"/>
from work
where id =#{integer}
</select>

<!--根据搜索栏的内容对名称和介绍进行模糊查询-->
   <select id="SelectByAll" resultType="com.clxs.pojo.WorkPojo">
select <include refid="Work"/>
from work
where right_now = 1
and name like concat('%',#{name},'%')
or introduction like CONCAT('%',#{introduction},'%')
</select>

</mapper>

内容的持久层的接口

package com.clxs.dao;

import com.clxs.pojo.WorkPojo;

import java.util.List;

//内容的持久层的接口
public interface WorkDao {

//    根据导航栏的内容ID查询对应内容
   public List<WorkPojo> SelectByWorkId(Integer integer);

//    根据搜索栏的内容对名称和介绍进行模糊查询
   public List<WorkPojo> SelectByAll(String string);

}

内容的持久层的测试

package com.clxs.dao;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath*:spring/applicationContext.xml"})

public class WorkDaoTest {

@Autowired
   private WorkDao workDao;

@Test
   public void selectByWorkId() {
System.out.println(workDao.SelectByWorkId(1));
}

@Test
   public void selectByAll() {
System.out.println(workDao.SelectByAll("9"));
}

}

内容的持久层的测试的结果

内容的业务层的接口的实现

package com.clxs.service.impl;

import com.clxs.dao.WorkDao;
import com.clxs.pojo.WorkPojo;
import com.clxs.service.WorkService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

//内容的业务层的接口的实现
@Service
public class WorkServiceimpl implements WorkService {

//    引入内容的持久层的接口
   @Autowired
   private WorkDao workDao;

//    根据导航栏的内容ID查询对应的内容
   @Override
   public List<WorkPojo> SelectByWorkId(Integer integer) {
return workDao.SelectByWorkId(integer);
}

//    根据搜索栏的内容对名称和介绍进行模糊查询
   @Override
   public List<WorkPojo> SelectByAll(String string){
return workDao.SelectByAll(string);
}

}

内容的业务层的接口

package com.clxs.service;

import com.clxs.pojo.WorkPojo;
import org.springframework.stereotype.Service;

import java.util.List;

//内容的业务层的接口
@Service
public interface WorkService {

//    根据导航栏的内容ID查询对应内容
   public List<WorkPojo> SelectByWorkId(Integer integer);

//    根据搜索栏的内容对名称和介绍进行模糊查询
   public List<WorkPojo> SelectByAll(String string);

}

内容的业务层的测试

package com.clxs.service;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath*:spring/applicationContext.xml"})

public class WorkServiceTest {

@Autowired
   private WorkService workService;

@Test
   public void selectByWorkId() {
System.out.println(workService.SelectByWorkId(1));
}

@Test
   public void selectByAll() {
System.out.println(workService.SelectByAll("9"));
}

}

内容的业务层的测试的结果

留言的持久层的接口的实现

<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >

<!--留言的持久层的接口的实现-->
<mapper namespace="com.clxs.dao.MessageDao">

<sql id="Message">
id,work_id,right_now,new_time,new_name,update_time,update_id,content
</sql>

<!--根据导航栏的内容ID查询对应内容的留言-->
   <select id="SelectByWorkId" resultType="com.clxs.pojo.MessagePojo">
select <include refid="Message"/>
from Message
where work_id =#{integer}
and right_now = 1
</select>

<!--游客增加留言-->
   <insert id="InsertByMessage" parameterType="com.clxs.pojo.MessagePojo">
insert into message
(work_id,right_now,new_time,new_name,update_time,update_id,content)
values
(#{work_id},#{right_now},#{new_time},#{new_name},#{update_time},#{update_id},#{content})
</insert>

</mapper>

留言的持久层的接口

package com.clxs.dao;

import com.clxs.pojo.MessagePojo;

import java.util.List;

//留言的持久层的接口
public interface MessageDao {

//    根据导航栏的内容ID查询对应内容的留言
   public List<MessagePojo> SelectByWorkId(Integer integer);

//    游客增加留言
   public boolean InsertByMessage(MessagePojo message);

}

留言的持久层的测试

package com.clxs.dao;

import com.clxs.pojo.MessagePojo;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath*:spring/applicationContext.xml"})

public class MessageDaoTest {

@Autowired
   MessageDao messageDao;

@Test
   public void selectByWorkId() {
System.out.println(messageDao.SelectByWorkId(1));
}

@Test
   public void insertByMessage() {

MessagePojo messagePojo = new MessagePojo();

messagePojo.setWork_id(1);
messagePojo.setRight_now(1);
messagePojo.setNew_time((long) 1997);
messagePojo.setNew_name("NMSL");
messagePojo.setUpdate_time(null);
messagePojo.setUpdate_id(null);
messagePojo.setContent("游戏可以输,但嘴巴一定要臭。");

System.out.println(messageDao.InsertByMessage(messagePojo));
}

}

留言的持久层的测试的结果

留言的业务层的接口的实现

package com.clxs.service.impl;

import com.clxs.dao.MessageDao;
import com.clxs.pojo.MessagePojo;
import com.clxs.service.MessageService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

//留言的业务层的接口的实现
@Service
public class MessageServiceimpl implements MessageService {

//    引入留言的持久层的接口
   @Autowired
   private MessageDao messageDao;

//    根据导航栏的内容ID查询对应的内容的留言
   @Override
   public List<MessagePojo> SelectByWorkId(Integer integer) {
return messageDao.SelectByWorkId(integer);
}

//    游客增加留言
   @Override
   public boolean InsertByMessage(MessagePojo message) {
return messageDao.InsertByMessage(message);
}

}

留言的业务层的接口

package com.clxs.service;

import com.clxs.pojo.MessagePojo;
import org.springframework.stereotype.Service;

import java.util.List;

//留言的业务层的接口
@Service
public interface MessageService {

//    根据导航栏的内容ID查询对应的内容的留言
   public List<MessagePojo> SelectByWorkId(Integer integer);

//    游客增加留言
   public boolean InsertByMessage(MessagePojo message);

}

留言的业务层的测试

package com.clxs.service;

import com.clxs.pojo.MessagePojo;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath*:spring/applicationContext.xml"})

public class MessageServiceTest {

@Autowired
   private MessageService messageService;

@Test
   public void selectByWorkId() {
System.out.println(messageService.SelectByWorkId(1));
}

@Test
   public void insertByMessage() {

MessagePojo messagePojo = new MessagePojo();

messagePojo.setWork_id(1);
messagePojo.setRight_now(1);
messagePojo.setNew_time((long) 1997);
messagePojo.setNew_name("NMSL");
messagePojo.setUpdate_time(null);
messagePojo.setUpdate_id(null);
messagePojo.setContent("游戏可以输,但嘴巴一定要臭。");

System.out.println(messageService.InsertByMessage(messagePojo));
}

}

留言的业务层的测试的结果

轮播的控制层的接口和实现

//    查询上架或下架的轮播图
   @ResponseBody
   @RequestMapping(value = "/Banner" , method = RequestMethod.GET)
public List<BannerPojo> SelectByBanner(@RequestParam Integer integer){
List<BannerPojo> list = bannerService.SelectByNow(integer);
return list;
}

轮播的控制层的测试和结果

导航的控制层的接口和实现

//    查询上架或下架的导航栏的内容
   @ResponseBody
   @RequestMapping(value = "/Guide" , method = RequestMethod.GET)
public List<GuidePojo> SelectByIndex(@RequestParam Integer integer){
List<GuidePojo> list = guideService.SelectByNow(integer);
return list;
}

导航的控制层的测试和结果

模糊查询内容的名称和介绍的控制层的接口和实现

//    模糊查询内容的名称和介绍
   @ResponseBody
   @RequestMapping(value = "/All" , method = RequestMethod.GET)
public List<WorkPojo> SelectByAll(@RequestParam String string){
List<WorkPojo> list = workService.SelectByAll(string);
return list;
}

模糊查询内容的名称和介绍的控制层的测试和结果

内容的控制层的接口和实现

//    根据导航栏的内容ID查询对应内容和对应内容的留言
   @ResponseBody
   @RequestMapping(value = "/Work" , method = RequestMethod.GET)
public Map<String,List> SelectByWork(@RequestParam Integer integer){
Map<String,List> map = new HashMap<>();
List A = new ArrayList<>();
List B = new ArrayList<>();
if (map !=null){
List AA = workService.SelectByWorkId(integer);
A.addAll(AA);
List BB = messageService.SelectByWorkId(integer);
B.addAll(BB);
}
map.put("Work",A);
map.put("Message",B);
return map;
}

内容的控制层的测试和结果

游客增加留言的控制层的接口和实现

//    游客增加留言
   @ResponseBody
   @RequestMapping(value = "/Message" , method = RequestMethod.POST)
public boolean InsertByMessage(MessagePojo message){

//        生成时间
       SimpleDateFormat formatter= new SimpleDateFormat("yyyy-MM-dd 'at' HH:mm:ss z");
Date time = new Date(System.currentTimeMillis());

MessagePojo messagePojo = new MessagePojo();
messagePojo.setWork_id(message.getWork_id());
messagePojo.setRight_now(message.getRight_now());
//        插入自己生成的时间,不需要前端生成,数据传输的安全性考虑。
       messagePojo.setNew_time(formatter.format(time));
//        插入自己生成的名称,不需要前端生成,数据传输的安全性考虑。
       messagePojo.setNew_name(getUUID());
messagePojo.setUpdate_time(message.getUpdate_time());
messagePojo.setUpdate_id(message.getUpdate_id());
messagePojo.setContent(message.getContent());

boolean list = messageService.InsertByMessage(messagePojo);
return list;
}

//    官方提供的随机生成名称的工具
   public static String getUUID(){
UUID uuid= UUID.randomUUID();
String str = uuid.toString();
String uuidStr=str.replace("-", "");
return uuidStr;
}

游客增加留言的控制层的测试

游客增加留言的控制层的结果

游客增加留言的控制层的结果的数据库的表单内容

完整的控制层

package com.clxs.controller;

import com.clxs.pojo.BannerPojo;
import com.clxs.pojo.GuidePojo;
import com.clxs.pojo.MessagePojo;
import com.clxs.pojo.WorkPojo;
import com.clxs.service.BannerService;
import com.clxs.service.GuideService;
import com.clxs.service.MessageService;
import com.clxs.service.WorkService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

import java.text.SimpleDateFormat;
import java.util.*;

//控制层的接口和接口实现
@Controller
public class FrontController {

//    引入轮播的业务层的接口
   @Autowired
   private BannerService bannerService;

//    引入导航的业务层的接口
   @Autowired
   private GuideService guideService;

//    引入内容的业务层的接口
   @Autowired
   private WorkService workService;

//    引入留言的业务层的接口
   @Autowired
   private MessageService messageService;

//    查询上架或下架的轮播图
   @ResponseBody
   @RequestMapping(value = "/Banner" , method = RequestMethod.GET)
public List<BannerPojo> SelectByBanner(@RequestParam Integer integer){
List<BannerPojo> list = bannerService.SelectByNow(integer);
return list;
}

//    查询上架或下架的导航栏的内容
   @ResponseBody
   @RequestMapping(value = "/Guide" , method = RequestMethod.GET)
public List<GuidePojo> SelectByIndex(@RequestParam Integer integer){
List<GuidePojo> list = guideService.SelectByNow(integer);
return list;
}

//    模糊查询内容的名称和介绍
   @ResponseBody
   @RequestMapping(value = "/All" , method = RequestMethod.GET)
public List<WorkPojo> SelectByAll(@RequestParam String string){
List<WorkPojo> list = workService.SelectByAll(string);
return list;
}


//    根据导航栏的内容ID查询对应内容和对应内容的留言
   @ResponseBody
   @RequestMapping(value = "/Work" , method = RequestMethod.GET)
public Map<String,List> SelectByWork(@RequestParam Integer integer){
Map<String,List> map = new HashMap<>();
List A = new ArrayList<>();
List B = new ArrayList<>();
if (map !=null){
List AA = workService.SelectByWorkId(integer);
A.addAll(AA);
List BB = messageService.SelectByWorkId(integer);
B.addAll(BB);
}
map.put("Work",A);
map.put("Message",B);
return map;
}

//    游客增加留言
   @ResponseBody
   @RequestMapping(value = "/Message" , method = RequestMethod.POST)
public boolean InsertByMessage(MessagePojo message){

//        生成时间
       SimpleDateFormat formatter= new SimpleDateFormat("yyyy-MM-dd 'at' HH:mm:ss z");
Date time = new Date(System.currentTimeMillis());

MessagePojo messagePojo = new MessagePojo();
messagePojo.setWork_id(message.getWork_id());
messagePojo.setRight_now(message.getRight_now());
//        插入自己生成的时间,不需要前端生成,数据传输的安全性考虑。
       messagePojo.setNew_time(formatter.format(time));
//        插入自己生成的名称,不需要前端生成,数据传输的安全性考虑。
       messagePojo.setNew_name(getUUID());
messagePojo.setUpdate_time(message.getUpdate_time());
messagePojo.setUpdate_id(message.getUpdate_id());
messagePojo.setContent(message.getContent());

boolean list = messageService.InsertByMessage(messagePojo);
return list;
}

//    官方提供的随机生成名称的工具
   public static String getUUID(){
UUID uuid= UUID.randomUUID();
String str = uuid.toString();
String uuidStr=str.replace("-", "");
return uuidStr;
}

}


至此,任务三要求都已经完成了。每个接口的每个功能都在注释里写的明明白白的,也通过了测试。


今日问题:


去用AOP的方式来测试接口的响应时间,顺便学习一下打日志。


明日想法:


去用AOP的方式来测试接口的响应时间,顺便学习一下打日志。


返回列表 返回列表
评论

    分享到