新建springboot项目

        记录新建springboot项目的过程,配置mybatis-plus相关依赖,并读取数据库中的数据,数据表createTime和updateTime字段在添加数据和修改数据时自动生成和修改

1、选择idea中创建springboot的组件

在这里插入图片描述

2、Group与Artifact中输入名称并选择java版本

在这里插入图片描述

3、选择项目所需的插件

        如果是前后端分离项目可以不用选择Thymeleaf
在这里插入图片描述

4、选择文件保存路径

在这里插入图片描述

5、创建成功后等待项目初始化

在这里插入图片描述

6、pom.xml中引入mybatis-plus的依赖(不能使用mybatis-plus,必须使用mybatis-plus-boot-starter,因为是在springboot工程中,需要有对应关系)

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

7、将resources下的application.properties文件改为application.yml,并加入数据源配置

spring:
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://localhost:3306/DataBaseName?useUnicode=true&characterEncoding=UTF-8
    username: root
    password: root

# 打印sql
mybatis-plus:
  configuration:
    mapUnderscoreToCamelCase: true
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

8、mybatis-plus根据数据表自动生成代码,包括实体类、Mapper、Service、ServiceImpl、Controller

  • 引入依赖
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-generator</artifactId>
    <version>3.3.2</version>
</dependency>
<dependency>
    <groupId>org.apache.velocity</groupId>
    <artifactId>velocity</artifactId>
    <version>1.7</version>
</dependency>
  • 创建启动类
import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
import com.baomidou.mybatisplus.generator.config.GlobalConfig;
import com.baomidou.mybatisplus.generator.config.PackageConfig;
import com.baomidou.mybatisplus.generator.config.StrategyConfig;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;

public class Main {
    
    
    public static void main(String[] args){
    
    
        // 创建generator对象
        AutoGenerator autoGenerator = new AutoGenerator();
        // 设置数据源
        DataSourceConfig dataSourceConfig = new DataSourceConfig();
        dataSourceConfig.setDbType(DbType.MYSQL);
        dataSourceConfig.setDriverName("com.mysql.cj.jdbc.Driver");
        dataSourceConfig.setUsername("root");
        dataSourceConfig.setPassword("root");
        dataSourceConfig.setUrl("jdbc:mysql://localhost:3306/DataBaseName?useUnicode=true&characterEncoding=UTF-8");
        autoGenerator.setDataSource(dataSourceConfig);
        // 全局配置
        GlobalConfig globalConfig = new GlobalConfig();
        globalConfig.setOpen(false);
        globalConfig.setOutputDir(System.getProperty("user.dir")+"/src/main/java");
        globalConfig.setAuthor("ws");
        globalConfig.setServiceName("%sService");
        autoGenerator.setGlobalConfig(globalConfig);
        // 包信息
        PackageConfig packageConfig = new PackageConfig();
        packageConfig.setParent("com.test.allstart");
        packageConfig.setEntity("entity");
        packageConfig.setMapper("mapper");
        packageConfig.setController("controller");
        packageConfig.setService("service");
        packageConfig.setServiceImpl("service.impl");
        autoGenerator.setPackageInfo(packageConfig);
        // 配置策略
        StrategyConfig strategyConfig = new StrategyConfig();
        strategyConfig.setEntityLombokModel(true);
        strategyConfig.setNaming(NamingStrategy.underline_to_camel);
        strategyConfig.setColumnNaming(NamingStrategy.underline_to_camel);
        autoGenerator.setStrategy(strategyConfig);
        autoGenerator.execute();
    }
}

9、启动类添加@MapperScan(“com.test.allstart.mapper”),否则无法加载Mapper bean

在这里插入图片描述

10、在Controller中的user文件中加入代码简单测试,浏览器访问”localhost:8080/user/a”可以查看数据库中的数据@RestController

@RequestMapping("/user")
public class UserController {
    
    
    @Autowired
    private UserMapper userMapper;

    @GetMapping("/a")
    public List<User> display(){
    
    
        List<User> user = userMapper.selectList(null);
        return user;
    }

}

11、数据表中自动添加createTime和updateTime

  • 实体类中添加如下代码
@TableField(fill = FieldFill.INSERT)
private Date createTime;

@TableField(fill = FieldFill.INSERT_UPDATE)
private Date updateTime;
  • 添加自动填充处理器
package com.test.allstart.config;

import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.stereotype.Component;

import java.util.Date;

@Component
public class addTime implements MetaObjectHandler {
    
    
    @Override
    public void insertFill(MetaObject metaObject) {
    
    
        this.setFieldValByName("createTime",new Date(),metaObject);
        this.setFieldValByName("updateTime",new Date(),metaObject);
    }

    @Override
    public void updateFill(MetaObject metaObject) {
    
    
        this.setFieldValByName("updateTime",new Date(),metaObject);
    }
}
  • 测试代码
@Test
void insert(){
    
    
    User user = new User();
    user.setUserName("Tom");
    user.setPassword("123");
    user.setMoneryAdd("aaabbbccc");
    user.setBalancePrice(new BigDecimal(100));
    user.setHeadImage("./1.jpg");
    userMapper.insert(user);
}

@Test
void update(){
    
    
    User user = userMapper.selectById(20);
    user.setBalancePrice(new BigDecimal(200));
    QueryWrapper queryWrapper = new QueryWrapper();
    queryWrapper.eq("id",20);
    userMapper.update(user,queryWrapper);
}

猜你喜欢

转载自blog.csdn.net/qq_43707926/article/details/127651111