springboot系列五:springboot整合mybatisplus jsp
一.用IDEA创建项目
1.添加pom.xml
<?xml version="1.0" encoding="UTF-8"?> <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 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.aibabel</groupId> <artifactId>boot1</artifactId> <version>1.0-SNAPSHOT</version> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.1.RELEASE</version> <relativePath /> <!-- lookup parent from repository --> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <!-- <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> </dependency> --> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.0.6</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-freemarker</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true</optional> </dependency> <!--druid --> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.4</version> </dependency> <!--commons --> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> </dependency> <dependency> <groupId>commons-configuration</groupId> <artifactId>commons-configuration</artifactId> <version>1.10</version> </dependency> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.5</version> </dependency> <!--shiro --> <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-core</artifactId> <version>1.3.2</version> </dependency> <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-spring</artifactId> <version>1.3.2</version> </dependency> <dependency> <groupId>com.auth0</groupId> <artifactId>java-jwt</artifactId> <version>3.2.0</version> </dependency> <!-- fastjson --> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.50</version> </dependency> <!-- mybatis代码生成器 --> <dependency> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> <version>1.3.7</version> </dependency> <dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-jasper</artifactId> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> </dependency> </dependencies> </project>
2.分别写三层代码
javabean
package com.aibabelx.entity; public class Student { private String xh; private String xm; private double fs; public String getXh() { return xh; } public void setXh(String xh) { this.xh = xh; } public String getXm() { return xm; } public void setXm(String xm) { this.xm = xm; } public double getFs() { return fs; } public void setFs(double fs) { this.fs = fs; } }
2.mapper接口
package com.aibabelx.mapper; import com.aibabelx.entity.Student; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Mapper; import java.util.List; @Mapper public interface StudentMapper extends BaseMapper<Student> { public int getSum(); public List<Student> getMax(); public List<Student> getSax(); }
3.service接口
package com.aibabelx.service; import com.aibabelx.entity.Student; import com.baomidou.mybatisplus.extension.service.IService; import org.springframework.stereotype.Service; import java.util.List; public interface StudentService extends IService<Student> { public int getSum(); public List<Student> getMax(); public List<Student> getSax(); }
4.service 实现类
package com.aibabelx.service.impl; import com.aibabelx.entity.Student; import com.aibabelx.mapper.StudentMapper; import com.aibabelx.service.StudentService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; @Service public class StudentServiceImpl extends ServiceImpl<StudentMapper, Student> implements StudentService { @Autowired public StudentMapper studentMapper; @Override public int getSum() { return studentMapper.getSum(); } @Override public List<Student> getMax() { return studentMapper.getMax(); } @Override public List<Student> getSax() { return studentMapper.getSax(); } }
5.controller
package com.aibabelx.controller; import com.aibabelx.entity.Student; import com.aibabelx.service.StudentService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; import java.util.List; @Controller public class StudentController { @Autowired public StudentService studentService; @RequestMapping("/index") public ModelAndView index(){ int n = studentService.getSum(); List< Student > getMax=studentService.getMax(); List<Student> getSax=studentService.getSax(); return new ModelAndView("index.jsp") .addObject("max",getMax) .addObject("sax",getSax) .addObject("n",n); } }
6.mapper的xml
<?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.aibabelx.mapper.StudentMapper"> <!-- 通用查询映射结果 --> <resultMap id="ItemBaseResultMap" type="com.aibabelx.entity.Student"> <id column="xh" property="xh" /> <result column="xm" property="xm" /> <result column="fs" property="fs" /> </resultMap> <select id="getSum" resultType="Integer" > SELECT COUNT(xh) FROM Student </select> <select id="getMax" resultType="Student"> SELECT xh,xm,fs from student WHERE fs =(SELECT MAX(fs) from student) </select> <select id="getSax" resultType="Student"> SELECT xh,xm,fs from student WHERE fs =(SELECT min(fs) from student) </select> </mapper>
7.application.properties
server.port =9999 spring.http.encoding.force=true spring.http.encoding.charset=UTF-8 spring.http.encoding.enabled=true server.tomcat.uri-encoding=UTF-8 #jsp config spring.mvc.view.prefix=/WEB-INF/views/ #spring.mvc.view.suffix: .jsp # DataSource spring.datasource.url=jdbc:mysql://localhost/aiplay?characterEncoding=utf-8&useSSL=false&serverTimezone=UTC spring.datasource.username=root spring.datasource.password= spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.jpa.show-sql = true mybatis-plus.typeAliasesPackage=com.aibabelx.entity mybatis-plus.mapperLocations=classpath*:mapper/*.xml logging.level.com.looedu.mapper=debug mybatis-plus.check-config-location:true mybatis-plus.configuration.log-impl:org.apache.ibatis.logging.stdout.StdOutImpl server.port =9999 spring.http.encoding.force=true spring.http.encoding.charset=UTF-8 spring.http.encoding.enabled=true server.tomcat.uri-encoding=UTF-8 #jsp config spring.mvc.view.prefix=/WEB-INF/views/ #spring.mvc.view.suffix: .jsp # DataSource spring.datasource.url=jdbc:mysql://localhost/aiplay?characterEncoding=utf-8&useSSL=false&serverTimezone=UTC spring.datasource.username=root spring.datasource.password= spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.jpa.show-sql = true mybatis-plus.typeAliasesPackage=com.aibabelx.entity mybatis-plus.mapperLocations=classpath*:mapper/*.xml logging.level.com.looedu.mapper=debug mybatis-plus.check-config-location:true mybatis-plus.configuration.log-impl:org.apache.ibatis.logging.stdout.StdOutImpl
8.index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> </head> <body> ${n} <c:forEach items="${max}" var="student" > ${student.xh}<br> ${student.xm}<br> ${student.fs}<br> </c:forEach> <c:forEach items="${sax}" var="student" > ${student.xh}<br> ${student.xm}<br> ${student.fs}<br> </c:forEach> </body> </html>
项目结构如下
项目地址