忘记搭建Spring Boot项目的上车
layui介绍
实战上手layui
搭建后台主页面
1.把后台页面源码copy到项目的index.html中
-----网页地址
2.修改index.html的css/js引用路径
声明页面支持thymeleaf模板引擎
使用thymeleaf的方法去访问资源路径
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-devtoolsartifactId>
<optional>trueoptional>
dependency>
<li class="layui-nav-item layui-nav-itemed">
<a class="" href="javascript:;">常用功能a>
<dl class="layui-nav-child">
<dd><a href="/Course/list" target="content_iFrm">设备订单a>dd>
<dd><a href="/Stuinfo/list" target="content_iFrm">员工信息a>dd>
dl>
li>
6.给功能模块添加数据表格
layui数据表格页面Whitelabel Error Page
This application has no explicit mapping for /error, so you are seeing this as a fallback.
Sat Jan 30 13:57:16 CST 2021
There was an unexpected error (type=Internal Server Error, status=500).
An error happened during template parsing (template: "class path resource [templates/courseorder/list.html]")
org.thymeleaf.exceptions.TemplateInputException: An error happened during template parsing (template: "class path resource [templates/courseorder/list.html]")
解决方法
1.把cols: [[ ]]换成
[
[
]
]
因为[[....]]之间的表达式在thymelear被认为是内联表达式,所以渲染错误
Mapper,Serivce,Controller (MVC搭建)
CourseOrder.java:
package com.example.crm.model;
@Data
public class CourseOrder implements Serializable {
private String Name; // 名称
private Integer Gender; // 性别
private Date Dirthday; // 出生年龄
private String Code;// 编号
private Date inDay;// 入职时间
private Date gmtCreate;// 创建时间
private Date gmtModify;// 结束时间
PageBean:
package com.example.crm.model;
import com.github.pagehelper.Page;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
/**
* 分页实体类.
*
* @author: zhuwenjie
* @date: 2019/9/27
*/
public class PageBean<T> implements Serializable {
private static final long serialVersionUID = 8656597559014685635L;
private long total; //总记录数
private List<T> list; //结果集
private int pageNum; // 第几页
private int pageSize; // 每页记录数
private int pages; // 总页数
private int size; // 当前页的数量 <= pageSize
/**
* 包装Page对象,因为直接返回Page对象,在JSON处理以及其他情况下会被当成List来处理,
* 而出现一些问题。
*
* @param list page结果
*/
public PageBean(List<T> list) {
if (list instanceof Page) {
Page<T> page = (Page<T>) list;
this.pageNum = page.getPageNum();
this.pageSize = page.getPageSize();
this.total = page.getTotal();
this.pages = page.getPages();
this.list = page;
this.size = page.size();
}
}
public PageBean(List<T> list,Page page) {
if (list instanceof ArrayList) {
this.pageNum = page.getPageNum();
this.pageSize = page.getPageSize();
this.total = page.getTotal();
this.pages = page.getPages();
this.list = list;
this.size = page.size();
}
}
public PageBean() {
}
public long getTotal() {
return total;
}
public void setTotal(long total) {
this.total = total;
}
public List<T> getList() {
return list;
}
public void setList(List<T> list) {
this.list = list;
}
public int getPageNum() {
return pageNum;
}
public void setPageNum(int pageNum) {
this.pageNum = pageNum;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public int getPages() {
return pages;
}
public void setPages(int pages) {
this.pages = pages;
}
public int getSize() {
return size;
}
public void setSize(int size) {
this.size = size;
}
}
CourseOrderMapper :
package com.example.crm.mapper;
import com.example.crm.model.CourseOrder;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
import java.util.Map;
public interface CourseOrderMapper extends Mapper{
public int findCountByMap(Map<String,Object> map);
public List<CourseOrder> findCourseOrderListByMap(Map<String,Object> map);
}
CourseOrderMapper.xml:
<mapper namespace="com.example.crm.mapper.CourseOrderMapper">
<select id="findCountByMap" parameterType="map" resultType="int">
select count(*) from patient;
select>
<select id="findCourseOrderListByMap" parameterType="map" resultType="com.example.crm.model.CourseOrder">
select id,name,gender as Gender,hospital_id as Code,birthday as Dirthday,in_day as inDay,gmt_create as gmtCreate,gmt_modify as gmtModify from patient
<if test="name != null">
<where>
name like concat('%',#{conditon.name},'%')
where>
if>
order by in_day desc limit #{start},#{pageSize};
select>
mapper>
ICourseOrderService:
package com.example.crm.service;
import com.example.crm.model.CourseOrder;
import com.example.crm.model.PageBean;
public interface ICourseOrderService {
public PageBean<CourseOrder> findPageResultBy(CourseOrder conditon,int page,int pageSize);
}
CourseOrderServiceimpl:
package com.example.crm.service.impl;
import com.example.crm.mapper.CourseOrderMapper;
import com.example.crm.model.CourseOrder;
import com.example.crm.model.PageBean;
import com.example.crm.service.ICourseOrderService;
import com.github.pagehelper.Page;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Service
public class CourseOrderServiceimpl implements ICourseOrderService {
@Autowired
CourseOrderMapper courseMapper;
@Override
public PageBean<CourseOrder> findPageResultBy(CourseOrder conditon, int page, int pageSize) {
PageBean<CourseOrder> result = new PageBean<CourseOrder>();
Map<String,Object> Map = new HashMap<String,Object>();
Map.put("start",(page-1) * pageSize);
Map.put("pageSize",pageSize);
Map.put("conditon",conditon);
//获取总记录数据
int totalCount = courseMapper.findCountByMap(Map);
result.setPageSize(totalCount);
//获取员工数据列表
List<CourseOrder> courselist = courseMapper.findCourseOrderListByMap(Map);
result.setList(courselist);
//返回结果集
return result;
}
}
IndexController:
package com.example.crm.controller;
@Controller
public class IndexController {
@RequestMapping("/index")
public String testindex() {
return "index";
}
@RequestMapping("/Course/list")
public String list() {
return "courseorder/list";
}
}
CourseOrderController:
package com.example.crm.controller;
@RestController
@RequestMapping("/Course")
public class CourseOrderController {
private static final Logger log = LoggerFactory.getLogger(CourseOrderController.class);
//员工信息
@Autowired
private CourseOrderServiceimpl courseService;
//查询员工信息
@RequestMapping("/Courselist")
public Map<String, Object> Courselist(CourseOrder courseOrder, PageBean page) {
Map<String, Object> map = new HashMap<>();
try {
if(courseOrder != null){
map.put("countCourse",courseService.findPageResultBy(courseOrder,page.getPages(),page.getPageSize()));
map.put("msge",1);
}
} catch (Exception e) {
e.printStackTrace();
log.error("员工数据查询异常", e);
}
return map;
}
}
CrmApplication:
package com.example.crm;
@SpringBootApplication
@MapperScan(basePackages = {"com.example.crm.mapper"})
public class CrmApplication {
public static void main(String[] args) {
SpringApplication.run(CrmApplication.class, args);
}
}
application.properties:
#访问本地端口号
server.port = 8888
#mysql连接参数
spring.datasource.url = jdbc:mysql://localhost:3306/hospital?characterEncoding=utf8&&serverTimezone=Asia/Shanghai&&useSSL=false
spring.datasource.username = root
spring.datasource.password = 123
spring.datasource.driverClassName = com.mysql.cj.jdbc.Driver
#mybatis配置
mybatis.type-aliases-package = com.example.crm.model
mybatis.mapper-locations = classpath:/mybatis/*.xml
#页面热加载
spring.thymeleaf.cache = false
pom.xml:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0modelVersion>
<groupId>com.examplegroupId>
<artifactId>crmartifactId>
<version>0.0.1-SNAPSHOTversion>
<name>crmname>
<description>Demo project for Spring Bootdescription>
<properties>
<java.version>1.8java.version>
properties>
<parent>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-parentartifactId>
<version>2.2.2.RELEASEversion>
<relativePath/>
parent>
<dependencies>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-thymeleafartifactId>
dependency>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-web-servicesartifactId>
dependency>
<dependency>
<groupId>mysqlgroupId>
<artifactId>mysql-connector-javaartifactId>
<scope>runtimescope>
dependency>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-testartifactId>
<scope>testscope>
dependency>
<dependency>
<groupId>org.mybatis.spring.bootgroupId>
<artifactId>mybatis-spring-boot-starterartifactId>
<version>1.1.1version>
dependency>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-devtoolsartifactId>
<optional>trueoptional>
dependency>
<dependency>
<groupId>com.github.pagehelpergroupId>
<artifactId>pagehelperartifactId>
<version>5.1.1version>
dependency>
<dependency>
<groupId>org.apache.commonsgroupId>
<artifactId>commons-lang3artifactId>
<version>3.9version>
dependency>
<dependency>
<groupId>com.alibabagroupId>
<artifactId>druidartifactId>
<version>1.1.10version>
dependency>
<dependency>
<groupId>org.projectlombokgroupId>
<artifactId>lombokartifactId>
dependency>
dependencies>
project>
补充:GIT操作指令团队开发pull,push