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 ...
随机推荐
- iOS 推送证书的制作
关于iOS推送证书的P12文件,并非直接从KeyChain导出来的证书文件.而是须要经过openSSL工具制作的.(好在Mac OS 默认就有openSSL命令) 针对不同的Server平台,须要的证 ...
- HibernateBaseDAO
HibernateBaseDAO接口 package com.iotek.homework.dao; import java.io.Serializable; import java.util.Lis ...
- ubuntu下7z文件的解压方法
apt-get install p7zip-full 控制台会打出以下信息: 正在读取软件包列表... 完成正在分析软件包的依赖关系树 正在读取状态信息... 完成 建议安装的 ...
- P1052 过河(状态压缩)
P1052 过河(状态压缩) 题目描述 在河上有一座独木桥,一只青蛙想沿着独木桥从河的一侧跳到另一侧.在桥上有一些石子,青蛙很讨厌踩在这些石子上.由于桥的长度和青蛙一次跳过的距离都是正整数,我们可以把 ...
- codeforces 899F Letters Removing set+树状数组
F. Letters Removing time limit per test 2 seconds memory limit per test 256 megabytes input standard ...
- RMAN异机恢复实验---转载
一.RMAN异机恢复实验 2011年3月23日00:44 1.环境介绍: 主机1: 操作系统 REDHAT5.5 IP地址 172.16.1.120 主机名 sigle 数据库版本 10.2.0.4 ...
- 82.角色管理Extjs 页面
1. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8&quo ...
- yii引入js文件
作者:zccst 四.在视图层(../views/..)添加CSS文件或JavaScript文件 Yii::app()->clientScript->registerScriptFile( ...
- Vue发布过程中遇到坑,以及webpack打包优化
前言 这段时间,本人自己做了一个vue画面部署到自己的服务器上,发现运行速度慢的的惊人,虽然服务器很渣(本人没什么钱,只能租最差的服务器,主要是给自己学习用的),但是这样开发出来的网站简直不能用,所以 ...
- android 自定义view 前的基础知识
本篇文章是自己自学自定义view前的准备,具体参考资料来自 Android LayoutInflater原理分析,带你一步步深入了解View(一) Android视图绘制流程完全解析,带你一步步深入了 ...