后端开发环境搭建

远程仓库代码下载
https://gitee.com/cgbylh/CrudDemo.git

1、File->New->Project…

2、选择 Spring Initializr ,然后选择默认的 url 点击next

3、勾选Spring Web、SQL模板,next

4、点击finish,搭建完成

后端开发过程

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 https://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.5.6</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.rp</groupId><artifactId>ry</artifactId><version>0.0.1-SNAPSHOT</version><name>ry</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-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><!-- Spring Boot Mybatis 依赖 --><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.2.0</version></dependency><!-- MySQL 连接驱动依赖 --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency><!--springBoot数据库连接  --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId></dependency><!-- Junit --><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version></dependency><!--lombok自动set get--><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>2.5.6</version></plugin></plugins></build></project>

2、新建 demo\src\main\java\com\rp\ry\pojo\User.java

package com.rp.ry.pojo;import lombok.Data;@Data
public class User {private int userId;private String userDate;private String userName;private String userAddress;}

3、更新demo\src\main\resources\application.yml

server:port: 8081
spring:datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/test?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&autoReconnect=true&allowMultiQueries=trueusername: rootpassword: root#SpringBoot整合Mybatis配置
mybatis:#设置别名包type-aliases-package: com.renda.pojo#加载映射文件mapper-locations: classpath:/mapper/*.xml
#  #开启驼峰映射
#  configuration:
#    map-underscore-to-camel-case: truelogging:level:com.renda.mapper: debug

4、新建demo\src\main\java\com\rp\ry\mapper\UserMapper.java

package com.rp.ry.mapper;import com.rp.ry.pojo.User;
import org.apache.ibatis.annotations.Mapper;import java.util.List;@Mapper
public interface UserMapper {public List<User> findUserByName(String userName);public List<User> ListUser();public List<User> queryPage(Integer startRows);public int getRowCount();public int inserUser(User user);public int delete(int userId);public int Update(User user);}

5、新建demo\src\main\resources\mapper\UserMapper.xml


<?xml version = "1.0" encoding = "UTF-8"?>
<!DOCTYPE mapper PUBLIC"-//mybatis.org//DTD com.example.Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.rp.ry.mapper.UserMapper"><resultMap id="result" type="com.rp.ry.pojo.User"><result property="userId" column="userId"/><result property="userData" column="userData"/><result property="userName" column="userName"/><result property="userAddress" column="userAddress"/></resultMap><select id="ListUser" resultMap="result">select * from user</select><select id="findUserByName" resultMap="result" parameterType="String">select * from userwhere username like concat (concat('%',#{userName}),'%')order by userId desc</select><select id="queryPage" resultMap="result" parameterType="Integer">select * from userorder by userId desclimit #{startRows},5</select><select id="getRowCount" resultType="Integer">select count(*) from user</select><insert id="inserUser" parameterType="com.rp.ry.pojo.User">insert into user(userId,userDate,userName,userAddress)values (#{userId},#{userDate,jdbcType=VARCHAR},#{userName,jdbcType=VARCHAR},#{userAddress,jdbcType=VARCHAR})</insert><delete id="delete" parameterType="int">delete from user where userId=#{userId}</delete><update id="Update" parameterType="com.rp.ry.pojo.User">update userset user.userDate=#{userDate},user.userName=#{userName},user.userAddress=#{userAddress}where user.userId=#{userId}</update></mapper>

6、新建demo\src\main\java\com\rp\ry\service\UserService.java


package com.rp.ry.service;import com.rp.ry.mapper.UserMapper;
import com.rp.ry.pojo.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.util.List;@Service
public class UserService {@Autowiredprivate UserMapper userMapper;public List<User> findByName(String userName){return userMapper.findUserByName(userName);}public List<User> queryPage(Integer startRows){return userMapper.queryPage(startRows);}public int getRowCount() {return userMapper.getRowCount();}public User insertUser(User user) {userMapper.inserUser(user);return user;}public List<User> ListUser(){return userMapper.ListUser();}public int Update(User user){return userMapper.Update(user);}public int delete(int userId){return userMapper.delete(userId);}
}

7、新建demo\src\main\java\com\rp\ry\controller\UserController.java



package com.rp.ry.controller;import com.rp.ry.pojo.User;
import com.rp.ry.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;import java.util.List;@RestController
public class UserController {@Autowiredprivate UserService userService;/*** 根据id删除数据* @param userId* @return ylh*/@RequestMapping(value = "/delete",method = RequestMethod.POST)public String delete(Integer userId){userService.delete(userId);return "删除数据成功";}/*** 根据id修改数据* @param user* @return*/@RequestMapping(value = "/update", method = RequestMethod.POST)@ResponseBodypublic String update(User user){int result = userService.Update(user);if (result >= 1){return "修改成功!";}else {return "修改失败!";}}/*** 新增数据* @param user* @return ylh*/@RequestMapping(value = "/insert",method = RequestMethod.POST)public User insert(User user){return userService.insertUser(user);}/*** 查询所有数据* @return ylh*/@RequestMapping("/ListUser")@ResponseBodypublic List<User> ListUser(){return userService.ListUser();}/*** 根据名字查询* @param userName* @return ylh*/@RequestMapping("/ListByName")@ResponseBodypublic List<User> ListUserByName(String userName){return userService.findByName(userName);}/*** 分页查询* @param* @return ylh*/@RequestMapping(value = "/page")@ResponseBodypublic List<User> page(Integer page){int pageNow = page == null ? 1 : page;int pageSize = 5;int startRows = pageSize*(pageNow-1);List<User> list = userService.queryPage(startRows);return list;}/*** 根据id查询总条数* @return ylh*/@RequestMapping(value = "/rows")@ResponseBodypublic int rows(){return userService.getRowCount();}
}

8、启动MySQL数据库,新建或执行如下表:

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;-- ----------------------------
-- Table structure for user
-- ----------------------------
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user`  (`userId` int(20) NOT NULL AUTO_INCREMENT,`userDate` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,`userName` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,`userAddress` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,PRIMARY KEY (`userId`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 71 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;-- ----------------------------
-- Records of user
-- ----------------------------
INSERT INTO `user` VALUES (15, '2019-09-29T03:17:12.000Z', '王老三', '上海市普陀区金沙江路 1515 弄');
INSERT INTO `user` VALUES (16, '2019-09-29T03:27:05.000Z', '张小四', '上海市普陀区金沙江路 1514 弄');
INSERT INTO `user` VALUES (17, '2019-09-29T03:30:04.000Z', '王老五', '上海市普陀区金沙江路 1513弄');
INSERT INTO `user` VALUES (18, '2019-09-29T03:33:15.000Z', '小六子', '上海市普陀区金沙江路 1512弄');
INSERT INTO `user` VALUES (20, '2019-09-29T03:33:15.000Z', '王老八', '上海市普陀区金沙江路 1512弄');
INSERT INTO `user` VALUES (21, '2019-09-29T05:42:52.000Z', '王大拿', '上海市普陀区金沙江路 1511弄');
INSERT INTO `user` VALUES (22, '2019-09-29T05:43:50.000Z', '小九九', '上海市普陀区金沙江路 1510弄');
INSERT INTO `user` VALUES (23, '2019-09-29T05:43:50.000Z', '刘诗诗', '上海市普陀区金沙江路 1499弄');
INSERT INTO `user` VALUES (24, '2019-09-29T05:46:07.000Z', '扎昂四四', '上海市大湾区科技路');
INSERT INTO `user` VALUES (25, '2019-09-29T05:46:07.000Z', '扎昂四四新东方', '上海市大湾区科技路2001号');
INSERT INTO `user` VALUES (26, '2019-09-29T05:46:07.000Z', '王小虎', '上海市大湾区科技路2002号');
INSERT INTO `user` VALUES (27, '2019-09-29T05:46:07.000Z', '抽拉吧唧', '上海市大湾区科技路2003号');
INSERT INTO `user` VALUES (28, '2019-09-29T05:46:07.000Z', '年啦编辑', '上海市大湾区科技路2004号');
INSERT INTO `user` VALUES (29, '2019-09-29T05:46:07.000Z', '你多少', '上海市普陀区金沙江路 1211弄');
INSERT INTO `user` VALUES (30, '2019-09-29T05:46:07.000Z', '反发达', '上海市普陀区金沙江路 1212弄');
INSERT INTO `user` VALUES (31, '2019-09-29T05:51:20.000Z', '发官方', '上海市普陀区金沙江路 1213弄');
INSERT INTO `user` VALUES (32, '2019-09-29T05:51:20.000Z', '方还有', '上海市普陀区金沙江路 1214弄');
INSERT INTO `user` VALUES (33, '2019-09-29T05:51:20.000Z', '过不分', '上海市普陀区金沙江路 1498弄');
INSERT INTO `user` VALUES (34, '2019-09-29T05:51:20.000Z', '菜市场', '上海市普陀区金沙江路 1497弄');
INSERT INTO `user` VALUES (35, '2019-09-29T05:51:20.000Z', '权威的', '上海市普陀区金沙江路 1496弄');
INSERT INTO `user` VALUES (36, '2019-09-29T05:55:09.000Z', '冈反对的', '上海市大湾区科技路2001号');
INSERT INTO `user` VALUES (37, '2019-09-29T05:55:09.000Z', '冈反对', '上海市大湾区科技路2003号');
INSERT INTO `user` VALUES (38, '2019-09-29T05:55:09.000Z', '偶哦里面', '上海市大湾区科技路2004号');
INSERT INTO `user` VALUES (39, '2019-09-29T05:55:09.000Z', '偶哦韩大苏打', '上海市大湾区科技路2005号');
INSERT INTO `user` VALUES (40, '2019-09-29T05:55:09.000Z', '偶哦匀', '上海市大湾区科技路2006号');
INSERT INTO `user` VALUES (41, '2019-09-29T05:55:09.000Z', '敢哦匀', '上海市大湾区科技路2006号');
INSERT INTO `user` VALUES (42, '2019-09-29T05:55:09.000Z', '敢孩', '上海市大湾区科技路2006号');
INSERT INTO `user` VALUES (43, '2019-09-29T05:55:09.000Z', '敢女孩', '上海市大湾区科技路2007号');
INSERT INTO `user` VALUES (45, '2019-09-29T05:55:09.000Z', '工行行', '上海市大湾区科技路2008号');
INSERT INTO `user` VALUES (46, '2019-09-29T05:55:09.000Z', '家好吗', '上海市大湾区科技路2008号');
INSERT INTO `user` VALUES (47, '2019-09-29T05:55:09.000Z', '的程度', '上海市大湾区科技路2009号');
INSERT INTO `user` VALUES (48, '2019-09-29T05:55:09.000Z', '称得上', '上海市大湾区科技路2009号');
INSERT INTO `user` VALUES (49, '2019-09-29T05:55:09.000Z', '韩国和', '上海市大湾区科技路2010号');
INSERT INTO `user` VALUES (50, '2019-09-29T05:55:09.000Z', '韩好', '上海市大湾区科技路2010号');
INSERT INTO `user` VALUES (51, '2019-09-29T05:55:09.000Z', '韩吧', '上海市大湾区科技路2011号');
INSERT INTO `user` VALUES (52, '2019-09-29T05:55:09.000Z', '韩吧吧', '上海市大湾区科技路2012号');
INSERT INTO `user` VALUES (53, '2019-09-29T05:55:09.000Z', '长度是', '上海市大湾区科技路2013号');
INSERT INTO `user` VALUES (54, '2019-09-29T05:55:09.000Z', '比如合', '上海市大湾区科技路2014号');
INSERT INTO `user` VALUES (55, '2019-09-29T05:55:09.000Z', '如合境', '上海市大湾区科技路2015号');
INSERT INTO `user` VALUES (56, '2019-09-29T05:55:09.000Z', '如合国', '上海市大湾区科技路2016号');
INSERT INTO `user` VALUES (57, '2019-09-29T05:55:09.000Z', '如更好', '上海市大湾区科技路2017号');
INSERT INTO `user` VALUES (58, '2019-09-29T05:55:09.000Z', '如更法', '上海市大湾区科技路2018号');
INSERT INTO `user` VALUES (59, '2019-09-29T05:55:09.000Z', '反对', '上海市大湾区科技路2019号');
INSERT INTO `user` VALUES (60, '2019-09-29T05:55:09.000Z', '如国部', '上海市大湾区科技路2019号');
INSERT INTO `user` VALUES (61, '2019-09-29T06:04:15.000Z', '奇热网', '上海市普陀区金沙江路 1496弄');
INSERT INTO `user` VALUES (62, '2019-09-29T06:04:33.000Z', '反对法', '上海市普陀区金沙江路 1495弄');
INSERT INTO `user` VALUES (63, '2019-09-29T06:04:33.000Z', '的风格', '上海市普陀区金沙江路 1494弄');
INSERT INTO `user` VALUES (64, '2019-09-29T06:04:33.000Z', '广泛同', '上海市大湾区科技路2020号');
INSERT INTO `user` VALUES (65, '2019-09-10T06:04:33.000Z', '但仍然', '上海市普陀区金沙江路 1493弄');
INSERT INTO `user` VALUES (66, '2019-09-29T06:10:28.000Z', 'vdfv', '放到电饭锅的');
INSERT INTO `user` VALUES (67, '2019-09-14T16:00:00.000Z', '朱老六', '上海市高新区上海中心');
INSERT INTO `user` VALUES (69, '2019-09-10T16:00:00.000Z', '是的', ' 学生的三十四分');
INSERT INTO `user` VALUES (70, '2019-09-29T07:51:44.000Z', '张小子', '上海市浦东区1234号');SET FOREIGN_KEY_CHECKS = 1;

9、后端就写完了,整体结构如下:

10、run 'RyApplication’启动项目,控制台没报错就用浏览器测试一下,在浏览器中输入http://localhost:8081/page?page=3 如果能出现如下字符串就?,已安装postman的可以每个方法都试一下:



总结

跟着敲代码的一定要仔细检查代码是否一致,标点符号等!
pom文件依赖及版本号可以切换,不指定版本
本文使用的是小辣椒 lombok依赖,省去了getter setter

有任何问题及意见可以在下方留言或私信!

转载原文链接:https://blog.csdn.net/jianyuwuyi/article/details/101769510

SpringBoot+mysql+mybatis实现增删改查和分页查询功能模块 后端java代码相关推荐

  1. node.js编写前端接口,服务器创建、数据库连接、路由挂载,增删改查、分页查询接口的编写

    1.文件准备 我们要准备三个文件来演示最基础的服务器创建.数据库连接路由挂载,增删改查.分页查询接口的编写.其中服务器创建单独一个文件为app.js,数据库连接为一个文件为pool.js,最后一个为接 ...

  2. 基于SpringBoot集合Mybatis的增删改查实现,通过postman测试(1)

    本篇介绍基于SpringBoot和Mybatis+mysql+maven的简单实现增删改查的案例,详细介绍如下, 代码地址附上:https://git.lug.ustc.edu.cn/nantian_ ...

  3. springboot整合mybatis实现增删改查

    立志存高远,笃行践初心 三更灯火五更鸡,正是男儿读书时. 黑发不知勤学早,白首方悔读书迟. 立志,标定人生方向:奋斗,创造人生价值,二者相辅相成,互相促进. 大部分程序员的「 目标 」都是成为一名优秀 ...

  4. 通过JDBC实现对Oracle,mysql数据库的增删改查,模糊查询,查询全部,根据ID查询,分页查询,统计查询,

    首先,需要了解一些连接Oracle的基础的知识 jdbc:oracle:thin:@localhost:1521:orcl是java程序通过jdbc连接oracle数据库的一种方式. 解释: jdbc ...

  5. MYSQL表的增删改查进阶(下)

    MYSQL表的增删改查进阶 4. 查询 4.1 聚合查询 4.1.1 聚合函数 4.1.2 group by字句 4.1.3 having 4.2 联合查询 4.2.1 内连接 4.2.2 外连接 4 ...

  6. Mybatis基础:增删改查、模糊查询、多条件查询

    Mybatis基础:增删改查.模糊查询.多条件查询http://www.bieryun.com/3132.html 1.新建测试数据库,根据实体类属性创建 2.实体类 [java] view plai ...

  7. mybatis实现增删改查xml配置和后端Java编程完整教程

    mybatis实现增删改查xml配置和后端编程教程 SqlMapConfig.xml <?xml version="1.0" encoding="UTF-8&quo ...

  8. mybatis完整增删改查入门实例

    mybatis完整增删改查入门实例 编程步骤 ①创建Java工程. ②导入jar包. ③创建sqlMapConfig.xml配置文件,这是mybatis的入口. ④创建数据库,数据库表user_c,插 ...

  9. java jdbc 连接mysql数据库 实现增删改查

    好久没有写博文了,写个简单的东西热热身,分享给大家. jdbc相信大家都不陌生,只要是个搞java的,最初接触j2ee的时候都是要学习这么个东西的,谁叫程序得和数据库打交道呢!而jdbc就是和数据库打 ...

最新文章

  1. maven打包记录1
  2. springboot 使用Jenkins实现自动化部署
  3. Openvswitch原理与代码分析(3): openvswitch内核模块的加载
  4. 以太坊完整工作原理和运行机制!
  5. SAP Spartacus list.component.ts的listData$数据的触发逻辑
  6. VB 创建快捷方式函数(可带参数)
  7. Python Imaging Library: ImageFile Module(图像文件模块)
  8. 数电六十分通关法则(更新中)
  9. java中hashset_Java HashSet – Java中的HashSet
  10. (转)限制字符长度及特殊符号不能输入
  11. 光敏传感器介绍及其软件应用
  12. 硬盘模式IDE和AHCI
  13. it新员工入职培训总结
  14. 具有三个元素的集合X共有29个拓扑
  15. nvm安装步骤及使用方法
  16. 最小系统板 STM32入门,点亮 LED 灯(STM32F103C6T6)
  17. 电脑桌面显示不出任何应用程序如何解决?
  18. 亚马逊能做些什么提升自己的产品成为爆款呢?
  19. 用open3d将stl格式转化为ply格式,并且单位从mm转为m
  20. FPGA读写Flash模块 Verilog程序设计

热门文章

  1. 数据库索引键uk_国外常用英文数据库
  2. 鼠标点击响应双击问题修复
  3. PPT转Word (源代码)
  4. React组件(进阶--生命周期 )
  5. 失业的程序员(八):创业的要素
  6. Linux _ Shell编程 — 功能语句
  7. 数据湖YYDS! Flink+IceBerg实时数据湖实践
  8. 计算天数(中等难度暴力)
  9. u盘显示空,怎么办?
  10. 有红、黄、绿三种颜色的球,其中红球 3 个, 黄球 3 个,绿球 6 个。先将这 12 个球混合放在一个盒子中,从中任意摸出 8 个球,编程计算摸出球的各种颜色搭配。1. 输出情况总数;2.输出摸取情