首页 > 数据库 >IDEA社区版+SpringBoot+MyBatisPLus+MySQL实现数据库的保存、查询、修改操作

IDEA社区版+SpringBoot+MyBatisPLus+MySQL实现数据库的保存、查询、修改操作

时间:2023-08-17 15:12:34浏览次数:39  
标签:MyBatisPLus name IDEA public String student Student id SpringBoot

一、概述

  使用IDEA社区+SpringBoot+MyBatisPlus+MySQL实现数据的保存修改与查询。主要记录一下踩坑过程。

  注意事项:

  1.社区版IDEA并不能直接创建SpringBoot工程,所以我采用的方式是在Spring官网上,让其帮助我创建一个,创建好后,直接下载。 

//参考案例
https://blog.csdn.net/fen_fen/article/details/123464256
//以下是官网的创建及快速开始步骤
https://start.spring.io/
https://spring.io/quickstart 

 

  2.数据库安装的是5.5

  3.maven安装的是3.8.8,安装完成后配置记得配置一下环境变量

  4.在springboot官网下载好demo项目后,用社区版IDEA打开,打开后的配置类似下面的目录结构

   a.在demo上下载下来的application.properties改为application.yml。这里面用于配置应用信息,如:端口号、数据库连接配置、mybatis配置、文件上传服务配置等   

spring:
  #  mysql连接配置与mybaits一致
  datasource:
    # 数据库地址、端口、数据库名
    #jdbc:mysql://ip地址:端口号/数据库名称?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=GMT%2B8
    url: jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=GMT%2B8
    username: root    #数据库账号
    password: 123456    #数据库密码
    driver-class-name: com.mysql.cj.jdbc.Driver
mybatis-plus:
  mapper-locations: mapper/*.xml #这个配置是用来连接mapper接口和mapper配置类
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #运行日志
    map-underscore-to-camel-case: true #驼峰转换
  type-aliases-package: com.tony.demo.model #实体扫描包

  b.pom.xml主要存放的是项目依赖包的信息,如果要新增或者删除依赖包,都是在这里面进行。下面是简单示例

  c.DemoApplication是入口,如下图所示,里面有一个main函数

   d.在目录结构中可以看到controller、mapper以及service包。这三个包是有关联的。

     StudengController:是api请求的方法路径入口

    StudentMapper:

    StudentServiceImpl:

   model中的实体和数据库中的表做映射:

   总结一下controller、service、mapper:例如:用户调用登录接口api/login,首先会找到controller,controller再找到service,service再找到对应的mapper,最终用mapper的增啥改查方法,进行数据库表的操作

 

二、代码实现

  代码实现不做过多解释,直接把完整代码贴出来方便作对比:

  1.StudentController.java

@RestController
public class StudentController {
    @Autowired
    StudentService studentService;

    @RequestMapping(value = "/addStudent", method = RequestMethod.POST)
    public void addStudent(@RequestBody Student student) {
        studentService.saveStudent(student);
    }

    @RequestMapping(value = "addOrUpdateStudent",method = RequestMethod.POST)
    public void saveOrUpdateStudent(@RequestBody Student student){
        studentService.saveOrUpdate(student);
    }


    /**
     * 根据指定的id查询用户
     *
     * @param s_id 用户id
     * @return
     */
    @RequestMapping(value = "/queryStudentById/{s_id}", method = RequestMethod.GET)
    public Student queryStudentById(@PathVariable("s_id") String s_id) {
        return studentService.getStudentById(s_id);
    }

    /**
     * 根据条件查询用户列表
     *
     * @param student 指定用户
     * @return
     */
    @RequestMapping(value = "/getList", method = RequestMethod.POST)
    public List<Student> getList(@RequestBody Student student) {
        return studentService.getList(student);
    }


    /**
     * 根据用户名获取用户列表
     *
     * @param name 用户名
     * @return
     */
    @RequestMapping(value = "/getStudentsByName", method = RequestMethod.GET)
    public List<Student> getStudentsByName(@RequestParam("s_name") String name) {
        return studentService.getStudentByName(name);
    }


}

  2.StudentServiceImpl.java、StudentService.java

@Service
public class StudentServiceImpl extends ServiceImpl<StudentMapper, Student> implements StudentService {
    @Autowired
    private StudentMapper studentMapper;

    /**
     * 添加学生
     * @param student 学生
     */
    @Transactional
    @Override
    public void saveStudent(Student student) {
//        studentMapper.addStudent(student);
        studentMapper.insert(student);
    }

    @Transactional
    @Override
    public List<Student> getList(Student student) {
        QueryWrapper<Student> wrapper = new QueryWrapper<>();
        if (student.getSId() != null) {
            wrapper.eq("s_id", student.getSId());
        }
        if (student.getSName() != null && !Objects.equals(student.getSName(), "")) {
            wrapper.like("s_name", student.getSName());
        }
        return studentMapper.selectList(wrapper);
    }

    @Transactional
    @Override
    public List<Student> getStudentByName(String s_name) {
        return studentMapper.getUserByName(s_name);
    }

    @Transactional
    @Override
    public Student getStudentById(String s_id) {
        Student student = studentMapper.getStudentById(s_id);
        if (student != null) {
            System.out.println("不为空");
        } else {
            System.out.println("为空");
        }
        return student;
    }
}
public interface StudentService extends IService<Student> {

    /**
     * 添加学生
     * @param student 学生
     */
    void saveStudent(Student student);

    /**
     * 查询条件查询
     * @param student 学生
     * @return
     */
    List<Student> getList(Student student);

    /**
     * 根据学生名称查询学生列表
     * @param s_name
     * @return
     */
    List<Student> getStudentByName(String s_name);

    /**
     * 根据学生id查询学生
     * @param s_id
     * @return
     */
    Student getStudentById(String s_id);
}

  3.StudentMaper.java

@Mapper
public interface StudentMapper extends BaseMapper<Student> {
    //    @Select("select * from student where s_name=#{s_name}")
    List<Student> getUserByName(@Param("s_name") String s_name);

    //    @Select("select * from student where s_id=#{s_id}")
    Student getStudentById(@Param("s_id") String s_id);

    //    void addStudent(@Param("s_id,s_name,s_sex,s_age,s_description")String s_id,String s_name,String s_sex,String s_age,String s_description);
    void addStudent(@Param("student") Student student);
}

  4.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="com.tony.demo.mapper.StudentMapper">
    <resultMap id="studentResultMap" type="com.tony.demo.model.Student">
        <id property="sId" jdbcType="VARCHAR"  column="s_id" />
        <result property="sName" jdbcType="VARCHAR" column="s_name" />
        <result property="sAge" jdbcType="VARCHAR" column="s_age" />
        <result property="sSex" jdbcType="VARCHAR" column="s_sex" />
        <result property="sDescription" jdbcType="VARCHAR" column="s_description" />
    </resultMap>
    <insert id="addStudent" parameterType="com.tony.demo.model.Student">
        insert into student values(student.sId,student.sName,student.sSex,student.sAge,student.sDescription)
    </insert>

    <select id="getUserByName" parameterType="java.lang.String" resultType="com.tony.demo.model.Student">
        select * from student where s_name=#{s_name}
    </select>
    <select id="getStudentById" resultType="com.tony.demo.model.Student">
        select * from student where s_id=#{s_id}
    </select>

</mapper>

  5.Student.java

@Data
@Getter
@Setter
@ToString
@TableName("student")
public class Student {
    @TableId(value = "s_id")
    private String sId= UUID.randomUUID().toString();

    @TableField(value = "s_name")
    private String sName;

    @TableField(value = "s_sex")
    private String sSex;

    @TableField(value = "s_age")
    private String sAge;

    @TableField(value = "s_description")
    private String sDescription;
}

  6.DemoApplication

@SpringBootApplication
public class DemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }

}

  

标签:MyBatisPLus,name,IDEA,public,String,student,Student,id,SpringBoot
From: https://www.cnblogs.com/tony-yang-flutter/p/17637596.html

相关文章

  • IntelliJ IDEA Community 社区版 Tomcat 插件
    1.安装PolarisTomcatServer点击Files->Settings->Plugins,在IntellijIDEA的插件市场搜索并安装PolarisTomcatServ 2.下载或添加tomcatserver点击Files->Settings->PolarisTomcatServer->点击下载按钮下载TomcatServer或者点击添加按钮添加已下载的To......
  • 【13章】SpringBoot打造企业级一体化SaaS系统
    课程下载——【13章】SpringBoot打造企业级一体化SaaS系统提取码:y8v1 分享课程——【13章】SpringBoot打造企业级一体化SaaS系统,附源码。课程中整合后端主流技术(SpringBoot、物理数据库隔离、加载动态权限、多方式权限控制)、前端必会框架(vue3),完整落地ERP+CRM一体化SaaS系统,带......
  • Idea激活教程
    1.下载idea并安装:https://download.jetbrains.com/idea/ideaIU-2018.3.5.exe?_ga=2.179947812.1869744014.1565834138-529508140.15634085462.下载破解jar包: https://files.cnblogs.com/files/blogs/667310/bin.rar?t=1692249876&download=true3.将步骤2中下载的jar包放到idea......
  • Springboot 转化器
    Springboot提供了很多转化器:其中有ApplicationConversionService:extendsFormattingConversionService。 publicstaticvoidaddApplicationConverters(ConverterRegistryregistry){ addDelimitedStringConverters(registry); registry.addConverter(newStringToDurationC......
  • 社区版idea 开发springmvc踩坑指南
    说明:社区版的idea不支持spring和web,所以在开发时跟旗舰版有些许不同,不同于旗舰版在加载spring,web子模块时社区版需要手动加载tomcat下的所有lib项目以及pro下加载的所有的依赖项lib到libraries中。此外社区版idea在springmvc开发时由于不直接支持web项目所以需要在pro项目的src目录......
  • java springboot excel 上传
    spring.http.multipart.location=/data/server/upload/spring.http.multipart.max-file-size=2048MBspring.http.multipart.max-request-size=2048MBimportjava.io.File;importjavax.servlet.MultipartConfigElement;importorg.springframework.beans.factory.ann......
  • 基于SpringBoot的点餐系统的设计与实现-计算机毕业设计源码+LW文档
    摘要:随着移动互联网的快速发展,微信小程序作为一种轻量级、快速启动、无需下载安装的应用程序形式,在市场中越来越受欢迎。同时,餐饮行业也是一个充满机会的领域,尤其是在新冠疫情后,外卖、自取等模式逐渐成为餐饮行业的主要销售方式。因此,开发一款基于微信小程序的点餐系统,能够提高餐......
  • 基于springboot小区共享车位平台的设计与实现
    随着信息技术和网络技术的飞速发展,人类已进入全新信息化时代,传统管理技术已无法高效,便捷地管理信息。为了迎合时代需求,优化管理效率,各种各样的管理系统应运而生,各行各业相继进入信息管理时代,小区共享车位平台就是信息时代变革中的产物之一。任何系统都要遵循系统设计的基本流程,本系......
  • IDEA 如何制作代码补丁?IDEA 生成 patch 和使用 patch
    什么是升级补丁?比如你本地修复的bug,需要把增量文件发给客户,很多场景下大家都需要手工整理修改的文件,并整理好目录,这个很麻烦。那有没有简单的技巧呢?看看IDEA生成patch和使用patch的使用。介绍下IDEA的patch工作中用到的补丁大致可以分为两种,一种是patch文件,即补......
  • SpringBoot3集成RocketMq
    标签:RocketMq5.Dashboard;一、简介RocketMQ因其架构简单、业务功能丰富、具备极强可扩展性等特点被广泛应用,比如金融业务、互联网、大数据、物联网等领域的业务场景;二、环境部署1、编译打包1、下载5.0版本源码包rocketmq-all-5.0.0-source-release.zip2、解压后进入目录,编......