论文管理系统(用户列表显示功能)
创始人
2024-02-06 11:59:46

上次我们已经实现了论文管理系登录功能,这次我们要实现登录之后的跳转到首页,并且让首页列表显示出数据库的信息并在Mapper中写入模糊查询功能语句,这次我们不使用MybatisPlus写这个功能,这次使用Mybatis来写,区别就是Plus是继承于Mapper,Mybatis则是我们通过读取Mapper.xml文件中的sql语句,实现效果如下图所示,:

 

一、后端部分 

1.1 实体类

再次强调我们每次传递数据是通过HttpResult 实体类来响应前端的数据

package com.woniu.paper.entity;import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;@Data
@AllArgsConstructor
@NoArgsConstructor
public class HttpResult {private Object data;private int pageTotle;private int code;//200=成功,500=失败private String msg;//给前端的提示
}

 实体类paper

package com.woniu.paper.entity;import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;import java.io.Serializable;
import java.time.LocalDateTime;@Data
@AllArgsConstructor
@NoArgsConstructor
public class Paper  {private Long id;private String title;private Long typeId;private String paperSummary;private String paperPath;private String createdBy;private LocalDateTime creationData;private String modifyBy;private LocalDateTime modifyData;private String fileName;private String typeName;}

 这里大家发现实体类里面多了一个属性typeName,这是方便我们后面模糊查询,因为paper数据表中的的论文类型是id,不是文本形式,没有办法进行模糊查询,所以我们需要在里面自己加入typeName这个变量

1.2 paperMapper.xml



           insert into t_paper (title,type_id,paper_summary,paper_path,created_by,modify_by,file_name) values (#{title},#{typeId},#{paperSummary},#{paperPath},#{createdBy},#{modifyBy},#{fileName})

数据库内外链接补充

 1.3 PaperMapper类

public interface PaperMapper extends BaseMapper {List selectPaperListByCondition(String title, String typeName, int start, int size);int count(String title, String typeName);//查询总数,用于列表分页
}

 1.4Service层

接口

package com.woniu.paper.service;import com.woniu.paper.entity.HttpResult;
import com.woniu.paper.entity.Paper;
import com.baomidou.mybatisplus.extension.service.IService;/*** 

* 服务类*

** @author zhang* @since 2022-11-18*/ public interface IPaperService {public HttpResult selectPaperListByCondition(String title, String typeName, int pageIndex, int pageSize);public HttpResult insertPaper(String title,Long typeId,String paperSummary,String paperPath,String createdBy,String modifyBy,String fileName); }

实现类

package com.woniu.paper.service.impl;import com.woniu.paper.entity.HttpResult;
import com.woniu.paper.entity.Paper;
import com.woniu.paper.mapper.PaperMapper;
import com.woniu.paper.mapper.UserMapper;
import com.woniu.paper.service.IPaperService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.util.List;/*** 

* 服务实现类*

** @author zhang* @since 2022-11-18*/ @Service public class PaperServiceImpl implements IPaperService {@Autowired(required = false)private PaperMapper paperMapper;//实例化DAO对象@Overridepublic HttpResult selectPaperListByCondition(String title, String typeName, int pageIndex, int pageSize) {List papers = paperMapper.selectPaperListByCondition(title, typeName, (pageIndex - 1) * pageSize, pageSize);int count = paperMapper.count(title, typeName);HttpResult result=null;if (papers!=null&&papers.size()>0){result= new HttpResult(papers,count,200,null);}else{result= new HttpResult(null,0,500,"没有更多数据");}return result;}}

 1.5 Controller层

package com.woniu.paper.controller;import com.woniu.paper.entity.HttpResult;
import com.woniu.paper.service.IPaperService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RestController;/*** 

* 前端控制器*

** @author zhang* @since 2022-11-18*/ @RestController @RequestMapping("/paper/paper") public class PaperController {@Autowiredprivate IPaperService paperService;//实例化Service对象/*** 根据分页查询论文列表* @return*/@RequestMapping("/list")@CrossOrigin(origins = "*")public HttpResult selectPaperListByCondition(String title,String typeName,int pageIndex,int pageSize) {return paperService.selectPaperListByCondition(title,typeName,pageIndex,pageSize);}/*** 新增*/}

 二、前端部分

效果图

 

源码如下 :




论文管理系统

论文管理系统
论文主题:论文类型:
论文列表
论文主题作者论文类型发表时间修改时间操作
{{p.title}}{{p.createdBy}}{{p.typeName}}{{p.creationData}}{{p.modifyData}}

 代码讲解

整体思路,我们要先保证能显示列表信息,之后进行跳转和模糊查询等等其他功能


这两个按钮是页面左边的菜单栏的选项

 

 分页功能

 

 JS部分都有具体注释,分页功能可参考往期博客

主页面图 

 模糊查询效果图

 

 

 

 

 

 

 

 

 

 

相关内容

热门资讯

埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...