发表于: 2019-12-03 16:01:50
1 1198
今日想法:
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的方式来测试接口的响应时间,顺便学习一下打日志。
评论