• spring boot使用mybatisplus访问mysql的配置流程


    网上教程大多教人新建一个带对应组件的项目,本文记录如何在一个已有springboot2.x项目中,配置使用mybatisplus来访问mysql。包括使用wrapper和自己写mapper.xml的自定义函数两种和数据库交互的方式。

    关于项目的创建,参考创建springboot 2.x web空项目(IDEA),本文使用的项目即为按该链接创建的空项目。

    项目配置前提:需要一个配置好的MySQL数据库,并建立相应的角色和数据表。

    实现内容:1.通过wrapper实现的增删改查;2.通过自定义mapper.xml实现的通过id查找数据。

    正文

    1.打开项目

    打开需要操作的项目,这里打开了一个空项目,项目文件结构如图所示。

    2.添加依赖项

    在pom.xml中添加依赖,添加位置是Dependencies标签之间,添加内容如下

    1. <dependency>
    2. <groupId>com.baomidou</groupId>
    3. <artifactId>mybatis-plus-boot-starter</artifactId>
    4. <version>3.5.4</version></dependency>
    5. <dependency>
    6. <groupId>mysql</groupId>
    7. <artifactId>mysql-connector-java</artifactId>
    8. <scope>runtime</scope></dependency>
    9. <!--lombok-->
    10. <dependency>
    11. <groupId>org.projectlombok</groupId>
    12. <artifactId>lombok</artifactId>
    13. <version>1.18.24</version>
    14. <scope>provided</scope>
    15. </dependency>

    可修改版本号为自己喜欢的版本(删除现有版本号会自动提示),其中若发现程序有错需要改回来!!!加好之后的样子

    3.添加配置

    在application.yml中添加相关配置,数据库的IP端口、用户名、密码需要换成自己的。mapper-locations中的classpath指的是resource文件夹,添加完成之后有爆红,需要重新加载项目。

    1. spring:
    2. datasource:
    3. url: jdbc:mysql://127.0.0.1:3306/test?characterEncoding=utf8&serverTimezone=GMT%2B8
    4. username: root
    5. password: root
    6. driver-class-name: com.mysql.cj.jdbc.Driver
    7. #
    8. mybatis-plus:
    9. mapper-locations: classpath:mapper/*.xml #对应mapper映射xml文件所在路径
    10. type-aliases-package: com.example.demo.entity #对应实体类路径

    添加完成之后内容如下(仅使用简单的wrapper而不自定义一些数据库的方法的话,mapper-locations不要也可以)

    在资源管理器右键项目名,在maven子选项中选择重新加载项目。

    最终效果就是yml文件中刚刚爆红的内容不爆红了,就不放图了。

    4.新增entity实体

    提前说明:本文使用了一个名为user的表,表里只有id和name两个字段。项目本身带有demos.web的文件夹,里面也有user相关的内容,这和本文内容无关,本文内容是直接在demo目录下创建的,选择的时候别选错了。

    4.1新建entity

    在demo下新建文件夹entity并在里面新建实体类User.java,输入内容如下

    1. @Data
    2. public class User {
    3. private int id;
    4. private String name;
    5. }

    结果如下

    5.新增mapper

    5.1新建mapper

    在demo下新建文件夹mapper并新建接口UserMapper

    5.2新增mapper.xml(可选)

    由于增删改查使用的是BaseMapper类写好的方法,可以通过wrapper直接调用。因此这里只需要写出按id查数据这个自定义的数据接口就可以了,如果仅使用wrapper相关的内容,可以不用做这一步。

    mapper文件夹下的UserMapper接口类新增内容如下

    List finduserbyid(int id);

    在resource下新建mapper文件夹,并新建usermapping.xml,添加以下内容。xml的对齐功能比较难用,可能需要手工对齐成自己喜欢的样子。

    1. "1.0" encoding="UTF-8"?>
    2. "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    3. "com.example.demo.mapper.UserMapper">

    6.创建userservice及userserviceimpl

    其中UserService内容为,其中前四个增删改查用的,最后一个为自定义查询函数用的,可以按需要删减。

    1. package com.example.demo.service;
    2. import com.example.demo.entity.User;
    3. import java.util.List;
    4. public interface UserService {
    5. public String add(String name);
    6. public List query();
    7. public String update(int id, String name);
    8. public String delete(int id);
    9. public List finduserbyid(int id);
    10. }

    userServiceImpl内容为

    1. package com.example.demo.service.Impl;
    2. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
    3. import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
    4. import com.example.demo.entity.User;
    5. import com.example.demo.mapper.UserMapper;
    6. import com.example.demo.service.UserService;
    7. import org.springframework.beans.factory.annotation.Autowired;
    8. import org.springframework.stereotype.Service;
    9. import java.util.List;
    10. @Service
    11. public class UserServiceimpl implements UserService {
    12. @Autowired
    13. private UserMapper userMapper;
    14. public String add(String name) {
    15. User user = new User();
    16. user.setName(name);
    17. userMapper.insert(user);
    18. return "操作成功";
    19. }
    20. public List query() {
    21. LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>();
    22. return userMapper.selectList(queryWrapper);
    23. }
    24. public String update(int id, String name) {
    25. LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>();
    26. updateWrapper.set(User::getName, name);
    27. updateWrapper.eq(User::getId, id);
    28. userMapper.update(updateWrapper);
    29. return "操作成功";
    30. }
    31. public String delete(int id) {
    32. LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>();
    33. queryWrapper.eq(User::getId, id);
    34. userMapper.delete(queryWrapper);
    35. return "操作成功";
    36. }
    37. public List finduserbyid(int id) {
    38. return userMapper.finduserbyid(id);
    39. }
    40. }

    serviceimpl对应了service里面定义的函数,实际截图不放了,有点长,反正一样的。。。

    7.添加controller

    demo目录下创建controller文件夹,并创建UserController

    添加内容

    1. package com.example.demo.controller;
    2. import com.example.demo.entity.User;
    3. import com.example.demo.service.UserService;
    4. import org.springframework.beans.factory.annotation.Autowired;
    5. import org.springframework.web.bind.annotation.*;
    6. import java.util.List;
    7. @RestController
    8. @RequestMapping("myuser")
    9. public class UserController {
    10. @Autowired
    11. public UserService userService;
    12. @PostMapping(value = "add")
    13. public String add(@RequestParam(value = "name") String name) {
    14. return userService.add(name);
    15. }
    16. @GetMapping(value = "query")
    17. public List query() {
    18. return userService.query();
    19. }
    20. @PostMapping(value = "update")
    21. public String update(@RequestParam(value = "id") int id, @RequestParam(value = "name") String name) {
    22. return userService.update(id, name);
    23. }
    24. @PostMapping(value = "delete")
    25. public String delete(@RequestParam(value = "id") int id) {
    26. return userService.delete(id);
    27. }
    28. @GetMapping(value = "find")
    29. public List finduserbyid(@RequestParam(value = "id") int id){
    30. return userService.finduserbyid(id);
    31. }
    32. }

    8.主程序加注解

    在主程序加

    @MapperScan("com.example.demo.mapper")

    9.项目,启动!

    右键DemoApplication运行,并通过浏览器访问localhost:8080/myuser/query

    看到数据库中随便插入的数据。

    通过访问localhost:8080/myuser/find?id=1可以看到查询的结果

  • 相关阅读:
    装机必备!这5款免费软件,你值得拥有!
    Python接入企业微信 - 推送信息到内部群里
    string详解
    linux 系统启动过程
    邮件钓鱼-邮件来源伪造-SPF绕过-setoolkit&&gohish&&swaks钓鱼
    (9)点云数据处理学习——Global registration(全局注册)
    上周热点回顾(4.3-4.9)
    Linux学习之基础工具一
    彩虹之眼文化集团整体方案设计
    浅析 em 和 rem
  • 原文地址:https://blog.csdn.net/qq1910506668/article/details/136608184