SpringBoot整合Mybatis实现增删改查,以及多表联查 您所在的位置:网站首页 增删改查的查 SpringBoot整合Mybatis实现增删改查,以及多表联查

SpringBoot整合Mybatis实现增删改查,以及多表联查

2023-10-18 07:57| 来源: 网络整理| 查看: 265

SpringBoot整合Mybatis 一.准备工作创建SpringBoot项目添加相关依赖全局配置文件创建数据表 二.增删改查创建实体类统一返回类创建mapper接口servie业务层Controller控制层 三.测试

一.准备工作 创建SpringBoot项目

这篇文章中有SpringBoot项目的创建:启动SpringBoot《从零开始的Springboot》

添加相关依赖 org.springframework.boot spring-boot-starter-web org.projectlombok lombok 1.18.12 provided mysql mysql-connector-java 8.0.28 org.mybatis.spring.boot mybatis-spring-boot-starter 2.2.2 全局配置文件 #指定一下 端口号 springboot server: port: 1111 #配置一下数据源 spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/t149?serverTimezone=Asia/Shanghai&useSSL=false&useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true hikari: username: root password: root #扫描mapper和给实体类驼峰 mybatis: mapper-locations: classpath:/com/liu/mapper/*.xml type-aliases-package: com.liu.entity configuration: #输出日志文件sql语句日志文件 log-impl: org.apache.ibatis.logging.stdout.StdOutImpl 创建数据表 CREATE TABLE `goods` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '商品名称', `price` double(10, 2) NOT NULL COMMENT '商品价格', `num` int(255) NOT NULL COMMENT '商品数量', `typeId` int(255) NOT NULL COMMENT '商品类型', `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '商品介绍', PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic; CREATE TABLE `type` ( `id` int(11) NOT NULL, `typeName` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic; 二.增删改查 创建实体类 @Data public class Goods { private int id; private String name; private double price; private int num; private int typeId; private String remark; private Type type; }

这里的type字段后期写mapper时双表联查

@Data public class Type { private int id; private String typeName; } 统一返回类 public class R extends HashMap { private static final long serialVersionUID = 1L; public R() { put("code", 0); put("msg", "success"); } public static R error() { return error(HttpStatus.SC_INTERNAL_SERVER_ERROR, "未知异常,请联系管理员"); } public static R error(String msg) { return error(HttpStatus.SC_INTERNAL_SERVER_ERROR, msg); } public static R error(int code, String msg) { R r = new R(); r.put("code", code); r.put("msg", msg); return r; } public static R ok(String msg) { R r = new R(); r.put("msg", msg); return r; } public static R ok(Map map) { R r = new R(); r.putAll(map); return r; } public static R ok() { return new R(); } public R put(String key, Object value) { super.put(key, value); return this; } } 创建mapper接口 public interface GoodsMapper { /*** * 查询全部 * 加id -修改根据id查询 */ List findAll(@Param("id")Integer id); /*** * 删除 */ Integer delete(@Param("id")Integer id); /*** * 增加 */ Integer insert(Goods goods); } servie业务层 @Service public class GoodsServiceImpl implements GoodsService { @Autowired private GoodsMapper gm; @Override public List findAll() { return gm.findAll(null); } @Override public Integer delete(Integer id) { return gm.delete(id); } @Override public Integer insert(Goods goods) { return gm.insert(goods); } } Controller控制层 @RequestMapping("/goods") @RestController public class GoodsController { @Autowired private GoodsServiceImpl gs; @RequestMapping("/findAll") public R list(){ return R.ok().data("list",gs.findAll()); } @PostMapping("/insert") public R add( Goods goods){ gs.insert(goods); return R.ok(); } @DeleteMapping("/{id}") public R remove(@PathVariable Integer id){ gs.delete(id); return R.ok(); } } 三.测试

打开浏览器在地址栏输入:localhost:1111/goods/findAll 如下图: ![在这里插入图片描述](https://img-blog.csdnimg.cn/50b7e53985a34af488ccca8f94ddebf8.png) 在这里插入图片描述 测试成功 !!

总结:

1.引入依赖 2.配置数据源 3.划分三层架构 4.编写controller层 5.运行


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有