最近放假在家,终于有时间学习springboot了,当下最流行的java框架,我还没有接触过,有点遗憾,看过尚硅谷雷丰阳老师的springboot基础整合篇,现在轮到项目整合了,在B站发现一个码匠社区项目挺好的,最近刚完成了分页部分的练习,居然没用插件,直接原生代码,有点牛笔。
一、项目架构
二、实现功能
目前我实现了登录,简单的springboot+mybatis的增删改查,使用bootstrap的前台布局,问题列表展示,分页展示等功能。
三、代码实例
我一般是从controller层开始写
indexController
package life.majiang.community.controller;
...
@Controller public class IndexController {
@Autowired
QuestionService questionService;
@GetMapping(**"/"**)
**public** String index(@RequestParam(name=**"page"**,defaultValue = **"1"**) Integer page,
@RequestParam(name=**"size"**,defaultValue = **"5"**) Integer size,
Model model) {
PaginationDTO pagination = **questionService**.list(page,size);
model.addAttribute(**"pagination"**,pagination);
**return** **"index"**;
}
}
QuestionService
package life.majiang.community.service;
...
@Service
public class QuestionService {
@Autowired
private QuestionMapper questionMapper;
@Autowired
private UserMapper userMapper;
public PaginationDTO list(Integer page, Integer size) {
PaginationDTO paginationDTO = new PaginationDTO();
Integer totalCount = questionMapper.count();
paginationDTO.setPagination(totalCount,page,size);
if(page<1){
page = 1;
}
if(page>paginationDTO.getTotalPage()){
page = paginationDTO.getTotalPage();
}
Integer offset = size * (page-1);
List<Question> questions = questionMapper.list(offset,size);
List<QuestionDTO> questionDTOList = new ArrayList<>();
for (Question question:questions){
User user = userMapper.getUserBySingleName(question.getCreator());
int comments = questionMapper.getComment_count(question);
int views = questionMapper.getView_count(question);
question.setComment_count(comments);
question.setView_count(views);
QuestionDTO questionDTO = new QuestionDTO();
BeanUtils.copyProperties(question,questionDTO);
questionDTO.setUser(user);
questionDTOList.add(questionDTO);
}
paginationDTO.setQuestions(questionDTOList);
return paginationDTO;
}
}
QuestionMapper
package life.majiang.community.mapper;
...
@Mapper
public interface QuestionMapper {
public void insertQuestion(Question question);
public String selectQuestionTitle(Question question);
public void updateQuestion(Question question);
@Select("select * from question limit #{offset},#{size}")
public List<Question> list(@Param(value = "offset") Integer offset,
@Param(value = "size") Integer size);
public Integer count();
public int getComment_count(Question question);
public int getView_count(Question question);
public int getCreatorTitleIsExist(Question question);
@Select("select * from question where creator=#{creator} limit #{offset},#{size}")
List<Question> listByCreator(@Param(value = "creator") String creator, @Param(value = "offset") Integer offset,@Param(value = "size") Integer size);
}
QuestionMapper,xml
**<!DOCTYPE** **mapper** **PUBLIC** **"-//mybatis.org//DTD Mapper 3.0//EN"** **"http://mybatis.org/dtd/mybatis-3-mapper.dtd"**_\>_ <**mapper** **namespace****="life.majiang.community.mapper.QuestionMapper"**> <**insert** **id****="insertQuestion"**> insert into question(creator,title,description,tag,updateTime,comment_count,view_count,like_count) values (#{creator},#{title},#{description},#{tag},now(),1,1,1); </**insert**> <**select** **id****="selectQuestionTitle"** **resultType****="String"**> select title from question where creator = #{creator}; </**select**> <**update** **id****="updateQuestion"**> _ _ </**update**> <**select** **id****="count"** **resultType****="Integer"**> select count(*) from question; </**select**> <**select** **id****="getComment_count"** **resultType****="Integer"**> select comment_count from question WHERE creator = #{creator} and title=#{title}; </**select**> <**select** **id****="getView_count"** **resultType****="Integer"**> select view_count from question WHERE creator = #{creator} and title=#{title}; </**select**> <**select** **id****="getCreatorTitleIsExist"** **resultType****="Integer"**> select count(*) from question WHERE creator = #{creator} and title=#{title}; </**select**> </**mapper**>
四、实现效果
五、总结
样式有点low,知识点也有点陈旧,但也算是一种学习吧,小白就应该更努力一些,2月15日开始看的,今天19号,看到了P28,又是一个74分钟的视频,真的是有点长,有点烦躁,希望自己能坚持下去。
每一篇博客都是一种经历,程序猿生涯的痕迹,知识改变命运,命运要由自己掌控,愿你游历半生,归来仍是少年。
欲速则不达,欲达则欲速!
更多精彩内容,首发公众号【素小暖】,欢迎关注。