5、SpringBoot+MyBaits+Maven+Idea+pagehelper分页插件
1、为了我们平时方便开发,我们可以在同一个idea窗口创建多个项目模块,创建方式如下
2、项目中pom.xm文件的内容如下
<?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>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.3.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>cn.kgc</groupId>
<artifactId>springbootmybatis</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>springbootmybatis</name>
<description>Demo project for Spring Boot</description> <properties>
<java.version>1.8</java.version>
</properties> <dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.0.0</version>
</dependency>
<!--一定注意版本号,此处需要修改,把默认score的删掉哦-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.38</version>
</dependency> <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!--spring boot 分页查询,需要手动配置-->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.3</version>
</dependency> </dependencies> <build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build> </project>
pom.xml
3、项目结构如下
4、在pojo包下创建Classes.java
package cn.kgc.pojo;
import java.io.Serializable;
/**
* @author:南京课工场大数据学院 Holly老师
* QQ/微信:864918306
* Created by Holly on 2019/4/2.
*/
public class Classes implements Serializable{
private Integer cid;
private String cname; public Classes() {
} public Classes(Integer cid, String cname) {
this.cid = cid;
this.cname = cname;
} public Integer getCid() {
return cid;
} public void setCid(Integer cid) {
this.cid = cid;
} public String getCname() {
return cname;
} public void setCname(String cname) {
this.cname = cname;
} @Override
public String toString() {
return "Classes{" +
"cid=" + cid +
", cname='" + cname + '\'' +
'}';
}
}
Classes.java
5、在pojo包下创建Student.java
package cn.kgc.pojo;
import java.io.Serializable;
/**
* @author:南京课工场大数据学院 Holly老师
* QQ/微信:864918306
* Created by Holly on 2019/4/2.
*/
public class Student implements Serializable{
private Integer sid;
private String sname;
private String password;
private String subject;
private Double result;
private Classes classes; public Student() {
} public Student(Classes classes) {
this.classes = classes;
} public Student(Integer sid, String sname, String password, String subject, Double result, Classes classes) {
this.sid = sid;
this.sname = sname;
this.password = password;
this.subject = subject;
this.result = result;
this.classes = classes;
} public Integer getSid() {
return sid;
} public void setSid(Integer sid) {
this.sid = sid;
} public String getSname() {
return sname;
} public void setSname(String sname) {
this.sname = sname;
} public String getPassword() {
return password;
} public void setPassword(String password) {
this.password = password;
} public String getSubject() {
return subject;
} public void setSubject(String subject) {
this.subject = subject;
} public Double getResult() {
return result;
} public void setResult(Double result) {
this.result = result;
} public Classes getClasses() {
return classes;
} public void setClasses(Classes classes) {
this.classes = classes;
} @Override
public String toString() {
return "Student{" +
"sid=" + sid +
", sname='" + sname + '\'' +
", password='" + password + '\'' +
", subject='" + subject + '\'' +
", result=" + result +
", classes=" + classes +
'}';
}
}
Student.java
6、在mapper包下创建ClassesMapper.java
package cn.kgc.mapper; import cn.kgc.pojo.Classes; import java.util.List;
/**
* @author:南京课工场大数据学院 Holly老师
* QQ/微信:864918306
* Created by Holly on 2019/4/2.
*/
public interface ClassesMapper {
List<Classes> selectClasses();
}
ClassesMapper.java
7、在mapper包下创建StudentMapper.java
package cn.kgc.mapper; import cn.kgc.pojo.Student; import java.util.List;
/**
* @author:南京课工场大数据学院 Holly老师
* QQ/微信:864918306
* Created by Holly on 2019/4/2.
*/
public interface StudentMapper {
List<Student> selectStudent(Student student);
}
StudentMapper.java
8、在resources文件夹下的mapper文件夹下创建ClassesMapper.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="cn.kgc.mapper.ClassesMapper">
<select id="selectClasses" resultType="Classes">
select * from classes
</select>
</mapper>
ClassesMapper.xml
9、在resources文件夹下的mapper文件夹下创建StudentMapper.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="cn.kgc.mapper.StudentMapper">
<select id="selectStudent" resultMap="studentMap">
select s.*,c.cname from student s,classes c where s.cid=c.cid
<if test="classes!=null and classes.cid!=-1">
and c.cid=#{classes.cid}
</if>
</select>
<resultMap id="studentMap" type="Student">
<id property="sid" column="SID"/>
<result property="sname" column="SNAME"/>
<result property="password" column="PASSWORD"/>
<result property="subject" column="SUBJECT"/>
<result property="result" column="RESULT"/>
<!--
<association property="classes" javaType="Classes">
<result property="cid" column="CID"/>
<result property="cname" column="CNAME"/>
</association>
-->
<association property="classes" javaType="Classes" resultMap="classesMap"/>
</resultMap>
<resultMap id="classesMap" type="Classes">
<id property="cid" column="CID"/>
<result property="cname" column="CNAME"/>
</resultMap> </mapper>
StudentMapper.xml
10、在java文件夹下的cn.kgc.service路径下创建ClassesService.java文件
package cn.kgc.service; import cn.kgc.pojo.Classes;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import java.util.List;
/**
* @author:南京课工场大数据学院 Holly老师
* QQ/微信:864918306
* Created by Holly on 2019/4/2.
*/
public interface ClassesService {
List<Classes> showOption();
}
ClassesService.java
11、在java文件夹下的cn.kgc.service路径下创建ClassesServiceImpl.java文件
package cn.kgc.service; import cn.kgc.mapper.ClassesMapper;
import cn.kgc.pojo.Classes;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import java.util.List;
/**
* @author:南京课工场大数据学院 Holly老师
* QQ/微信:864918306
* Created by Holly on 2019/4/2.
*/
@Service
@Transactional
public class ClassesServiceImpl implements ClassesService{
@Autowired
private ClassesMapper classesMapper;
@Override
public List<Classes> showOption() {
return classesMapper.selectClasses();
}
}
ClassesServiceImpl.java
12、在java文件夹下的cn.kgc.service路径下创建StudentService.java文件
package cn.kgc.service;
import cn.kgc.pojo.Student;
import com.github.pagehelper.PageInfo;
import java.util.List;
/**
* @author:南京课工场大数据学院 Holly老师
* QQ/微信:864918306
* Created by Holly on 2019/4/2.
*/
public interface StudentService {
List<Student> showData(Student student);
//插件做分页数据查询(查询所有和条件查询)
PageInfo<Student> showPageData(Integer pageno,Integer pagesize,Student student);
}
StudentService.java
13、在java文件夹下的cn.kgc.service路径下创建StudentServiceImpl.java文件
package cn.kgc.service; import cn.kgc.mapper.StudentMapper;
import cn.kgc.pojo.Student;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import java.util.List;
/**
* @author:南京课工场大数据学院 Holly老师
* QQ/微信:864918306
* Created by Holly on 2019/4/2.
*/
@Service
@Transactional
public class StudentServiceImpl implements StudentService{
@Autowired
private StudentMapper studentMapper;
@Override
public List<Student> showData(Student student) {
return studentMapper.selectStudent(student);
} //分页查询
@Override
public PageInfo<Student> showPageData(Integer pageno, Integer pagesize, Student student) {
//创建分页工具类
Page pageutil= PageHelper.startPage(pageno,pagesize);
//将要进行分页的数据先做查询所以
studentMapper.selectStudent(student);
return new PageInfo<Student>(pageutil);
}
}
StudentServiceImpl.java
14.在java文件夹下的cn.kgc.controller路径下创建CenterController.java文件
package cn.kgc.controller;
import cn.kgc.pojo.Classes;
import cn.kgc.pojo.Student;
import cn.kgc.service.ClassesService;
import cn.kgc.service.StudentService;
import com.github.pagehelper.PageInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import java.util.List;
/**
* @author:南京课工场大数据学院 Holly老师
* QQ/微信:864918306
* Created by Holly on 2019/4/2.
*/
@RestController
public class CenterController{
@Autowired
private ClassesService classesService; @Autowired
private StudentService studentService; @RequestMapping("/option.do")
public List<Classes> getOptionData(){
return classesService.showOption();
} @RequestMapping("/getData.do")
public List<Student> getStudentData(Integer cid){ return studentService.showData(new Student(new Classes(cid,null)));
}
//插件分页查询
@RequestMapping("/getPageData.do")
public PageInfo<Student> findPageData(Integer cid,Integer pageno){
Integer pagesize=3;
Student student=new Student(new Classes(cid,null));
return studentService.showPageData(pageno,pagesize,student);
}
}
CenterController.java
15.编辑java文件夹下的cn.kgc路径下的SpringbootmybatisApplication.java文件
package cn.kgc; import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
* @author:南京课工场大数据学院 Holly老师
* QQ/微信:864918306
* Created by Holly on 2019/4/2.
*/
@SpringBootApplication
@MapperScan("cn.kgc.mapper")
public class SpringbootmybatisApplication { public static void main(String[] args) {
SpringApplication.run(SpringbootmybatisApplication.class, args);
} }
SpringbootmybatisApplication.java
16.编辑resources文件夹下的application.properties文件
#端口号
server.port=9090 #数据源的配置
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/kgc
spring.datasource.username=root
spring.datasource.password=ok #给某个包下的类的全路径生成别名
mybatis.type-aliases-package=cn.kgc.pojo #注册映射xml文件
mybatis.mapper-locations=classpath:mapper/*.xml
application.properties
17.在resources文件夹下的static文件夹下创建index.html文件
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<center>
<h1>学员管理系统</h1>
<form id="claConditon">
<p>
班级:
<select name="cid">
<option value="-1">--请选择--</option>
</select>
<input type="button" value="提交"/>
</p>
</form>
<table>
<tr>
<td>学号</td>
<td>班级</td>
<td>姓名</td>
<td>科目</td>
<td>成绩</td>
</tr>
</table>
<p id="pageroot"></p>
</center>
<script type="text/javascript" src="js/jquery-3.1.1.js"></script>
<script type="text/javascript" src="js/index.js"></script>
</body>
</html>
index.html
18.在resources文件夹下的static文件夹下创建js文件夹,并在该文件夹下添加jquery-3.1.1.js文件
19.在resources文件夹下的static文件夹下创建js文件夹,并在该文件夹下创建index.js文件
$(function () {
//下拉菜单
getOptionData();
//初始化数据
// initData();
//分页初始化数据
initPageData(1); //条件查询
$("[type=button]").click(function () {
initPageData(1);
});
}); //分页初始化数据
function initPageData(pageno){
var cid=$("[name=cid]").val();
$.ajax({
url:"getPageData.do",
type:"post",
dataType:"json",
data:{"cid":cid,"pageno":pageno},
async:true,
success:function (obj) {
console.log(obj);
$("tr:not(tr:first)").remove();
var str="";
$.each(obj.list,function (i) {
str+="<tr>";
str+="<td>"+obj.list[i].sid+"</td>";
str+="<td>"+obj.list[i].classes.cname+"</td>";
str+="<td>"+obj.list[i].sname+"</td>";
str+="<td>"+obj.list[i].subject+"</td>";
str+="<td>"+obj.list[i].result+"</td>";
str+="</tr>";
});
$("table").append(str); $("#pageroot").html(" ");
var pagestr="第"+obj.pageNum+"/"+obj.pages+"页 ";
if(obj.pageNum>1){
pagestr+="<a href='javascrpt:void(0);' onclick='initPageData("+obj.firstPage+")'>首页</a> ";
pagestr+="<a href='javascrpt:void(0);' onclick='initPageData("+obj.prePage+")'>上一页</a> ";
}
if(obj.pageNum<obj.pages){
pagestr+="<a href='javascrpt:void(0);' onclick='initPageData("+obj.nextPage+")'>下一页</a> ";
pagestr+="<a href='javascrpt:void(0);' onclick='initPageData("+obj.lastPage+")'>末页</a> ";
} pagestr+="共"+obj.total+"条 ";
$("#pageroot").append(pagestr);
},
error:function () {
alert("initPageData error");
}
});
} //初始化数据
function initData(){
var cid=$("[name=cid]").val();
$.ajax({
url:"getData.do",
type:"post",
dataType:"json",
data:{"cid":cid},
async:true,
success:function (obj) {
console.log(obj);
$("tr:not(tr:first)").remove();
var str="";
$.each(obj,function (i) {
str+="<tr>";
str+="<td>"+obj[i].sid+"</td>";
str+="<td>"+obj[i].classes.cname+"</td>";
str+="<td>"+obj[i].sname+"</td>";
str+="<td>"+obj[i].subject+"</td>";
str+="<td>"+obj[i].result+"</td>";
str+="</tr>";
});
$("table").append(str);
},
error:function () {
alert("initData error");
}
});
}
//下拉菜单
function getOptionData() {
$.ajax({
url:"option.do",
type:"post",
dataType:"json",
data:{},
async:true,
success:function (obj) {
var str="";
$.each(obj,function (i) {
str+="<option value='"+obj[i].cid+"'>"+obj[i].cname+"</option>";
});
$("select").append(str);
},
error:function () {
alert("getOptionData error");
}
});
}
index.js
20.运行SpringbootmybatisApplication文件,
21.浏览器运行
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
特此声明:请大家尊重知识版权,该帖本人Holly原创,大家搞技术都不容易,分享为了互相学习和交流,转载请注明出处!谢谢!
大家也可以关注我的微信公众号:跟Holly老师学java
QQ/微信:964918306
5、SpringBoot+MyBaits+Maven+Idea+pagehelper分页插件的更多相关文章
- Springboot 系列(十二)使用 Mybatis 集成 pagehelper 分页插件和 mapper 插件
前言 在 Springboot 系列文章第十一篇里(使用 Mybatis(自动生成插件) 访问数据库),实验了 Springboot 结合 Mybatis 以及 Mybatis-generator 生 ...
- SpringBoot入门篇--整合mybatis+generator自动生成代码+druid连接池+PageHelper分页插件
原文链接 我们这一篇博客讲的是如何整合Springboot和Mybatis框架,然后使用generator自动生成mapper,pojo等文件.然后再使用阿里巴巴提供的开源连接池druid,这个连接池 ...
- SpringBoot+Mybatis配置Pagehelper分页插件实现自动分页
SpringBoot+Mybatis配置Pagehelper分页插件实现自动分页 **SpringBoot+Mybatis使用Pagehelper分页插件自动分页,非常好用,不用在自己去计算和组装了. ...
- 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_3-5.PageHelper分页插件使用
笔记 5.PageHelper分页插件使用 简介:讲解开源组件,mybaits分页插件的使用 1.引入依赖 <!-- 分页插件依赖 --> ...
- SpringBoot+MyBatis多数据源使用分页插件PageHelper
之前只用过单数据源下的分页插件,而且几乎不用配置.一个静态方法就能搞定. PageHelper.startPage(pageNum, pageSize); 后来使用了多数据源(不同的数据库),Page ...
- mybatis pagehelper分页插件使用
使用过mybatis的人都知道,mybatis本身就很小且简单,sql写在xml里,统一管理和优化.缺点当然也有,比如我们使用过程中,要使用到分页,如果用最原始的方式的话,1.查询分页数据,2.获取分 ...
- spring boot 整合pagehelper分页插件
Spring Boot 整合pagehelper分页插件 测试环境: spring boot 版本 2.0.0.M7 mybatis starter 版本 1.3.1 jdk 1.8 ------ ...
- 逆向工程文件example完美结合使用PageHelper分页插件及分页不成功原因
原生的mybatis需要手写sql语句,项目数据库表多了之后,可以让你写sql语句写到手软,于是mybatis官方提供了mybatis-generator:mybatis逆向工程代码生成工具,用于简化 ...
- Spring Boot整合tk.mybatis及pageHelper分页插件及mybatis逆向工程
Spring Boot整合druid数据源 1)引入依赖 <dependency> <groupId>com.alibaba</groupId> <artif ...
随机推荐
- 【Nginx】模块化设计
高度模块化的设计是Nginx的架构基础.全部模块都是以ngx_module_t结构体表示,该结构体内部定义了7个回调方法.它们负责模块的初始化和退出.commands成员是一个包括有ngx_comma ...
- python 005 正则表达式
. 任意字符 ^ 匹配字符串开始 $ 匹配字符串结尾 * 匹配前面出现了零次或多次 + 匹配前面出现了一次或多次 ? 匹配前面出现零次或一次 {N} 匹配前面出现了N次 {M,N} 匹配重复出现M-N ...
- local_response_normalization 和 batch_normalization
Normalization Normalization local_response_normalization local_response_normalization出现在论文”ImageNe ...
- 2017 Multi-University Training Contest - Team 2&&hdu 6047 Maximum Sequence
Maximum Sequence Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- CentOS7 内核参数优化
# allow testing with buffers up to 128MBnet.core.rmem_max = 134217728net.core.wmem_max = 134217728# ...
- python中使用pip安装报错:Fatal error in launcher... 解决方法
python安装了2和3版本在 cmd 中用pip报的错误为:Fatal error in launcher:Unable to create process using 这是因为你安装了python ...
- python 46 盒模型 与盒模型布局
一:盒模型 1. 盒模型的概念 广义盒模型:文档中所有功能性及内容性标签,及文档中显示性标签 侠义盒模型:文档中以块级形式存在的标签(块级标签拥有盒模型100%特性且最常用) 盒模型组成:margi ...
- sentcms,thinkphp网站管理系统
SentCMS网站管理系统是南昌腾速科技有限公司倾力打造的一款简单易用的网站管理系统,SentCMS网站管理系统(下文简称SentCMS)继承了thinkphp5.0的优秀品质,秉承“大道至简”的设计 ...
- iTex导出PDF
iText导出PDF,所需jar包如下: itext-asian-5.2.0.jar 支持导出中文的jar包 itextpdf-5.5.9.jar PDF核心jar包 bcprov-jdk15on-1 ...
- oracle命令行登录(默认用户名和密码)
oracle数据库安装成功之后会有默认的用户名和密码,之前因为没有整理,每次用的时候都要百度很麻烦,所以现在把这些都整理一下,也方便以后使用: 使用scott用户连接:使用sys用户连接:使用syst ...