(2)springboot开发教程-mybaits-plus数据库集成

zhuc 2024-06-06 21 阅读

springboot开发教程-数据库集成mybaits-plus


参考网址:https://baomidou.com/


Spring Boot2


<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.5.6</version>
</dependency>
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-generator</artifactId>
    <version>3.5.6</version>
</dependency>

在pom文件中加入以上配置



创建一个代码生成类,根据https://baomidou.com/guides/new-code-generator/


package com.tuoyue.jyzc;

import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;

/**
 * @Author zc
 */
public class CodeGenerator {
    public static  void main(String[] args){

        FastAutoGenerator.create("jdbc:mysql://localhost:3306/springbootdb?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8", "root", "root")
                .globalConfig(builder -> builder
                        .author("zhuc")
                        .outputDir("src/main/java")
                        .commentDate("yyyy-MM-dd")
                )
                .packageConfig(builder -> builder
                        .parent("com.tuoyue.jyzc")
                        .entity("entity")
                        .mapper("mapper")
                        .service("service")
                        .serviceImpl("service.impl")
                        .xml("mapper.xml")
                        .controller("controller")
                )
                .strategyConfig(builder ->
                        builder.addInclude("user") // 设置需要生成的表名
                                .addTablePrefix("t_", "c_") // 设置过滤表前缀
                )
                .templateEngine(new FreemarkerTemplateEngine())
                .execute();
    }
}


删除原有demo下的示例包

创建规范的几个包名


创建数据表

CREATE TABLE `user` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `name` varchar(50) DEFAULT NULL,
  `age` int(11) DEFAULT NULL,
  `email` varchar(50) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8mb4;


运行CodeGenerator提示报错

Exception in thread "main" java.lang.NoClassDefFoundError: freemarker/template/Configuration


需要加入freemarker类库

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>


再运行CodeGenerator代码生成成功


可以看到已经生成了相关的类


再运行DemoApplication,这时候报错

No qualifying bean of type 'com.tuoyue.jyzc.mapper.UserMapper' available: expected at least 1 bean which qualifies as autowire candidate. 


在运行类中增加一个MapperScan




增加后再运行成功


UserController中增加一个方法进行测试

浏览器打开http://127.0.0.1:8081/user/add

返回{"code":"0"},至此数据库集成 成功