SpringBoot--页面显示列表功能
Posted 时光-ing
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringBoot--页面显示列表功能相关的知识,希望对你有一定的参考价值。
功能介绍: 用于在table中渲染出数据库中的数据。
1、IDEA进行相关的配置,并且创建SpringBoot项目,目录如下:
2、domain中创建实体类,用于和数据库中的数据表关联起来,User。
package com.example.demo.domain;
public class User
// 对应数据表user中的各字段
private String uuid;
private String username;
private String gender;
private int age;
private String phone;
private String address;
private String email;
private float salary;
// 鼠标右键选择generate,接着选择setter and getter,选中所有字段,然后点击Ok,便会自动为我们自动生成get和set方法。
public String getUuid()
return uuid;
public void setUuid(String uuid)
this.uuid = uuid;
public String getUsername()
return username;
public void setUsername(String username)
this.username = username;
public String getGender()
return gender;
public void setGender(String gender)
this.gender = gender;
public int getAge()
return age;
public void setAge(int age)
this.age = age;
public String getPhone()
return phone;
public void setPhone(String phone)
this.phone = phone;
public String getAddress()
return address;
public void setAddress(String address)
this.address = address;
public String getEmail()
return email;
public void setEmail(String email)
this.email = email;
public float getSalary()
return salary;
public void setSalary(float salary)
this.salary = salary;
3、mapper中创建接口(interface),如:UserMapper。
package com.example.demo.mapper;
import com.example.demo.domain.User;
import org.apache.ibatis.annotations.*;
import java.util.List;
public interface UserMapper
// 与数据库相关的操作,通过注解来实现
// 查询所有数据在列表中
@Select("select * from user")
@Results(@Result(column = "username",property = "username")) // MyBatis中使用@Results注解来映射查询结果集到实体类属性,column为数据库字段名,porperty为实体类属性名。
public List<User> findAll(); // 创建一个findAllUser()方法,返回类型是list,list元素类型是User。
4、service中创建服务(对应着mapper中的接口),如:UserService。
package com.example.demo.service;
import com.example.demo.domain.User;
import com.github.pagehelper.PageInfo;
import java.util.List;
public interface UserService
// 简单分页查询
PageInfo<User>findAllSimplePage(int page,int size);
5、service-impl中创建接口服务的实现(对应着service中的接口),如:UserServiceImpl。
package com.example.demo.service.impl;
import com.example.demo.domain.User;
import com.example.demo.mapper.UserMapper;
import com.example.demo.service.UserService;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
@Service("UserService")
public class UserServiceImpl implements UserService
@Resource // 接口只能有一个实现类(@Resource是JDK提供的,通过name名字查找;而Autowired是Spring提供的,通过type类型查找。)
private UserMapper userMapper;
// 鼠标放在public class UserServiceImpl implements UserService的红线处,点击implement methods,全部选中,则创建好了所有的方法
// 简单的分页查询
@Override
public PageInfo<User> findAllSimplePage(int page, int size)
// 利用PageHelper插件做分页查询.page是从1开始
PageHelper.startPage(page,size);
List<User> users = userMapper.findAll();
PageInfo<User> pageInfo = new PageInfo<>(users);
return pageInfo;
6、controller中创建控制器,如:UserController。
package com.example.demo.controller;
import com.alibaba.fastjson.JSONObject;
import com.example.demo.domain.User;
import com.example.demo.service.UserService;
import com.github.pagehelper.PageInfo;
import netscape.javascript.JSObject;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.*;
@Controller // ①返回JSON或XML数据;②页面模板
@RequestMapping("/user") // 这个类的路径,定义为/user
public class UserController
@Resource(name = "UserService")
private UserService csi;
@RequestMapping("findAllSimplePage")
@ResponseBody
// @RequestBody(required=false) 表示map对象可以不传入
// @RequestBody(required = false) Map<String,Object> 客户端的可以不传入这段参数,也可以正常的运行
public String findAllSimplePage(@RequestParam(value = "page", defaultValue = "3") Integer page,
@RequestParam(value = "size", defaultValue = "5") Integer size)
Map<String, Object> requestMap = new HashMap<String, Object>();
requestMap .put("page", page);
requestMap .put("size", size);
if (requestMap != null)
if (requestMap.get("page").toString() != null)
page = Integer.parseInt(requestMap.get("page").toString()); // Integer.parseInt是Integer类中提供的一个静态方法,用于将传入的string类型字符串根据要求转为相应进制的int值, 如果没有要求进制则按10进制计算
page = page-1; // 为了使页面从第一页开始查询
if (requestMap.get("size").toString() != null)
size = Integer.parseInt(requestMap.get("size").toString());
PageInfo<User> pageInfo = csi.findAllSimplePage(page,size);
List<User> users = pageInfo.getList(); // 等待dump
long total = pageInfo.getTotal(); // 一共多少条数据
JSONObject result = new JSONObject(); // JSONObject-lib包是一个beans,collections,maps,java arrays和xml和JSON互相转换的包,将实体对象转换成Json字符串。
result.put("rows",users); // rows表示每一条数据的详细记录
result.put("total",(int)total); // 一共多少条数据
return result.toJSONString(); // toJSONString()默认忽略值为null的属性,本返回值中并未返回page和size分页的结果,而是将所有的数据一把抓地传送到前端,具体的分页效果还是根据前端设置。
效果展示:
以上是关于SpringBoot--页面显示列表功能的主要内容,如果未能解决你的问题,请参考以下文章
idea2021.1.3版本springboot项目中所有个.java文件报红线
idea2021.1.3版本springboot项目中所有个.java文件报红线