SpringBoot-20-Mybatis代码生成

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: SpringBoot-20-Mybatis代码生成


SpringBoot-20-Mybatis代码生成

什么是Mybatis?


mybatis是apache的一个开源项目ibatis,2010年正式改名为mybatis。他是一个Java的持久层框架,ibatis提供的持久层框架包含 SqL Maps和Data Access Objects(Daos)

Mybatis特点:


Mybatis简单易学:可以通过官方文档,快速掌握和实现开发


支持动态sql编写


降低sql和代码的高耦合性,将业务层和数据访问层分开


但是在操作Mybatis的时候会有很多重复性操作,为了使得我们减少设置mybatis中的配置文件以及表交互的麻烦,出现了一些mybatis代码生成方案:


  • Mybatis Generator
  • Mybtis Plus



我们这次介绍Mybatis Generator对Mybatis进行增强和Mybatis的数据操作。

Mybatis Generator实现

Mybatis Generator有多种实现方式xml配置实现方式,代码配置方式以及通过插件方式实现,今天我们就介绍一个最简单的Idea插件方式实现Mybatis Generator,better-mybatis-generator是一个可以根据表进行自动生成mybatis相关的代码,(包括:dao、example、domain、xml)相关插件better-mybatis-generator**官方网址,安装步骤如下:


ffd3621cc1303875f07da63221395365.png



使用better-mybatis-generator生成Mybatis代码过程

  • 在Idea的DataBase中配置相对于的mysql链接步骤如下:

  • 选择相对应的表进行代码生成,具体步骤如下图:




d75124675181ae6549fe0931c4135823.png




9ea6f305a0ca201a276102472093cfa7.png


添加Mybatis的相关依赖

创建项目以后我们要在pom.xml中添加mybatis和mysql驱动,初学者可以查看SpringBoot项目创建学校如何创建项目。

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.0.0</version>
        </dependency>

添加Mybatis相关配置

我们需要在application.yml配置数据库链接,以及Mybatis中xml文件存放位置。

server:
  port: 8899
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/mybatis?useUnicode=true&serverTimezone=Asia/Shanghai&characterEncoding=utf-8&useSSL=false
    username: root
    password: root
    driver-class-name: com.mysql.cj.jdbc.Driver
mybatis:
  mapper-locations: classpath:mapper/*.xml
logging:
  level:
    com.learn.springboot: debug

配置Mybatis中mapper的包扫描位置

配置包扫描路径有两种方式(两者配置方法选一个):

  • 在Main入口配置
@MapperScan(basePackages = {"com.learn.springboot.mapper"})
@SpringBootApplication
public class SpringBootPart18Application {
    public static void main(String[] args) {
        SpringApplication.run(SpringBootPart18Application.class, args);
    }
}
  • 添加Config配置类(个人推荐使用,为以后配置mybatis分页,多数据源等作准备)
@Configuration
@MapperScan(basePackages = {"com.learn.springboot.mapper"})
public class MybatisConfig {
}

Service层的实现

  • Service接口层的实现,代码如下:
public interface StudentService {
    void saveStudent(Student student);
    void deleteStudent(Long id);
    void updateStudent(Student student);
    Student getStudent(Long id);
    List<Student> getAll();
}
  • Service层接口的实现代码如下:
@Service
public class StudentServiceImpl implements StudentService {
    /**
     * mapper注入
     */
    @Autowired
    private StudentDaoMapper studentDaoMapper;
    /**
     * 添加学生
     * @param student
     */
    @Override
    public void saveStudent(Student student) {
        //代码自动生成
        studentDaoMapper.insert(student); 
    }
    /**
     * 根据ID删除学生
     * @param id
     */
    @Override
    public void deleteStudent(Long id) {
        //代码自动生成
        studentDaoMapper.deleteByPrimaryKey(id);  
    }
    /**
     * 更新学生
     * @param student
     */
    @Override
    public void updateStudent(Student student) {
        //代码自动生成
        studentDaoMapper.updateByPrimaryKeySelective(student); 
    }
    /**
     * 根据ID查询学生
     * @param id
     * @return
     */
    @Override
    public Student getStudent(Long id) {
        //代码自动生成
        return studentDaoMapper.selectByPrimaryKey(id);
    }
    /**
     * 获取所有数据
     * @return
     */
    @Override
    public List<Student> getAll() {
        //代码自动生成
        return studentDaoMapper.selectByExample(null);    
    }
}

Controller层的实现

@Slf4j
@RestController
@RequestMapping("/student")
public class StudentController {
    @Autowired
    private StudentService studentService;
    @PostMapping("create")
    public void saveStudent(@RequestBody Student student) {
        studentService.saveStudent(student);
    }
    @GetMapping("/delete/{id}")
    public void deleteStudent(@PathVariable("id") Long id) {
        studentService.deleteStudent(id);
    }
    @PostMapping("update")
    public void updateStudent(@RequestBody Student student) {
        studentService.updateStudent(student);
    }
    @GetMapping("/select/{id}")
    public Student getStudent(@PathVariable("id") Long id) {
        return studentService.getStudent(id);
    }
    @GetMapping("/selectall")
    public List<Student> getAll() {
        return studentService.getAll();
    }
}

测试

使用postman测试一下分别测试一下接口:


http://localhost:8899/student/selectall GET方法


http://localhost:8899/student/select/11 GET方法


http://localhost:8899/student/update POST方法


http://localhost:8899/student/delete/11 GET方法


http://localhost:8899/student/create POST方法


postman测试接口方法如下图:



3125e501d25393504f1137bde5aa3b41.png



如果您觉得本文不错,欢迎关注支持,您的关注是我坚持的动力!

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
28天前
|
Java 数据库连接 API
springBoot:后端解决跨域&Mybatis-Plus&SwaggerUI&代码生成器 (四)
本文介绍了后端解决跨域问题的方法及Mybatis-Plus的配置与使用。首先通过创建`CorsConfig`类并设置相关参数来实现跨域请求处理。接着,详细描述了如何引入Mybatis-Plus插件,包括配置`MybatisPlusConfig`类、定义Mapper接口以及Service层。此外,还展示了如何配置分页查询功能,并引入SwaggerUI进行API文档生成。最后,提供了代码生成器的配置示例,帮助快速生成项目所需的基础代码。
|
2月前
|
XML Java 关系型数据库
springboot 集成 mybatis-plus 代码生成器
本文介绍了如何在Spring Boot项目中集成MyBatis-Plus代码生成器,包括导入相关依赖坐标、配置快速代码生成器以及自定义代码生成器模板的步骤和代码示例,旨在提高开发效率,快速生成Entity、Mapper、Mapper XML、Service、Controller等代码。
springboot 集成 mybatis-plus 代码生成器
|
4月前
Mybatis-Plus 代码生成器
Mybatis-Plus 代码生成器
|
6月前
|
Java 编译器 数据库
小唐开始学 Spring Boot——(4)代码生成器
小唐开始学 Spring Boot——(4)代码生成器
|
6月前
|
JavaScript Java 关系型数据库
SpringBoot + Mybatis + Vue的代码生成器
SpringBoot + Mybatis + Vue的代码生成器
77 2
|
6月前
|
JavaScript 关系型数据库 Java
MyBatisPlus 最新版代码生成器(直接拿来就能用,包含自动生成 Vue 模版)
MyBatisPlus 最新版代码生成器(直接拿来就能用,包含自动生成 Vue 模版)
342 0
|
6月前
|
XML Java 数据库连接
MyBatis代码生成器
MyBatis代码生成器
113 0
|
6月前
|
SQL 资源调度 Java
mybatis-plus代码生成器的UI界面使用非常方便
mybatis-plus代码生成器的UI界面使用非常方便
114 0
|
6月前
如何使用MybatisPlus的代码生成器功能?
如何使用MybatisPlus的代码生成器功能?
|
6月前
|
数据库连接
一款非常好用的MyBatisPlus代码生成工具
一款非常好用的MyBatisPlus代码生成工具
35 0