当前位置:   article > 正文

2021年1月17日 spring boot + mybatis-plus + h2 + lombok_lombok1.18是哪一年的

lombok1.18是哪一年的

环境

spring boot 2.3.7
h2database 1.4.195 (1.4.200版本自动建库会报错)
lombok 1.18.16
mybatis-plus-boot-starter 3.3.2

依赖

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

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
            <optional>true</optional>
        </dependency>
        
        <dependency>
            <groupId>com.h2database</groupId>
            <artifactId>h2</artifactId>
            <version>1.4.195</version>
            <scope>runtime</scope>
        </dependency>
     

        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.3.2</version>
        </dependency>
        
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>


        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
    </dependencies>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46

目录结构

在这里插入图片描述

配置文件

可以弄个sql文件,让应用启动时在h2数据库自动建表
注意h2数据库除了可以做内存数据库,也可以做本地持久化,具体看datasource里面怎么配置
application.yml

server:
  port: 8088

spring:
  datasource:
    # url: jdbc:h2:mem:mydb    #mem   创建一个名叫mydb的内存数据库,应用重启就没了
    url: jdbc:h2:~/mydb    #~   在系统的home目录下创建一个名叫mydb的持久数据库
    driver-class-name: org.h2.Driver
    username: admin   #账号密码自己配置
    password: abc123
    schema: classpath:db/schema-h2.sql   # 启动应用时读取resources/db/schema-h2.sql 自动建表
    data: classpath:db/data-h2.sql      # 启动应用时读取resources/db/data-h2.sql 自动建表自动插数据

  h2:   #开启web控制台 访问地址  http://localhost:应用端口/h2-database
    console:
      enabled: true   #Whether to enable the console 是否启用控制台
      path: /h2-database   #Path at which the console is available.控制台可用路径
      settings:
        web-allow-others: true


mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl   #让mybatis-plus打印sql
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

src/main/resources/db/schema-h2.sql

--每次启动应用都重建新表
--DROP TABLE IF EXISTS book;

--CREATE TABLE liquor
SET MODE MYSQL;  --兼容mysql语法
-- 以下是只最初创建一次表,而不是一启动应用就重建
CREATE TABLE  IF NOT EXISTS  book
(
    id BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID' ,
    name VARCHAR(128) NULL DEFAULT NULL COMMENT '名称',
    price INT(11) NULL DEFAULT NULL COMMENT '价格',
    PRIMARY KEY (id)
);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

src/main/resources/db/data-h2.sql

--这里我注释掉了,因为我配置的是持久数据库,后面自己通过mybatis-plus添加测试数据
--如果创建的是内存数据库的话才可能需要每次启动应用自动插入数据
/*
DELETE FROM book;
INSERT INTO book (id, name, price) VALUES
(1, '<demo1>', 88),
(2, '<demo2>', 444),
(3, '<demo3>', 444),
(4, '<demo4>', 666),
(5, '<demo5>', 7);
*/
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

代码

src/main/java/cc/mm/demo1/controllers/ControllerBook.java

package cc.mm.demo1.controllers;

import cc.mm.demo1.enity.Book;
import cc.mm.demo1.mappers.MapperBook;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;

import javax.servlet.http.HttpServletRequest;

@RestController
public class ControllerBook {

    @Autowired
    private MapperBook mapperBook;

    //获取所有
    @RequestMapping("/listAllBook")
    @ResponseBody
    Object listAllBook(){
        return mapperBook.selectList(null);
    }

    //循环添加测试数据
    @RequestMapping("/addTestData")
    @ResponseBody
    Object addTestData(){
        for(int i=0;i<100;i++) {
            Book b = new Book();
            b.setName("test");
            b.setPrice(i*5);
            mapperBook.insert(b);
        }
        return "ok";
    }

}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42

src/main/java/cc/mm/demo1/enity/Book.java

package cc.mm.demo1.enity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;

@Data
public class Book {
    //id自增
    @TableId(type = IdType.AUTO)
    int id;
    public String name;
    public Integer price;

}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

src/main/java/cc/mm/demo1/mappers/MapperBook.java

package cc.mm.demo1.mappers;

import cc.mm.demo1.enity.Book;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;

@Mapper
public interface MapperBook extends BaseMapper<Book> {

}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

参考来源

Springboot+Mybatis Plus+H2 database项目搭建

H2 数据库快速入门

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/347388
推荐阅读
相关标签
  

闽ICP备14008679号