• spring-boot + mybatis-enhance-actable实现自动创建表



    1、pom.xml

      		
            <dependency>
                <groupId>mysqlgroupId>
                <artifactId>mysql-connector-javaartifactId>
                <version>8.0.30version>
            dependency>
    
            <dependency>
                <groupId>com.alibabagroupId>
                <artifactId>druidartifactId>
                <version>1.2.13-SNSAPSHOTversion>
            dependency>
    
            <dependency>
                <groupId>com.baomidougroupId>
                <artifactId>mybatis-plus-boot-starterartifactId>
                <version>3.4.1version>
            dependency>
    
            <dependency>
                <groupId>com.gitee.sunchenbin.mybatis.actablegroupId>
                <artifactId>mybatis-enhance-actableartifactId>
                <version>1.5.0.RELEASEversion>
            dependency>
    
    

    2、yml

    classpath*:mapper/.xml:自己xml的路径
    classpath
    :com/gitee/sunchenbin/mybatis/actable/mapping//.xml: actable的路径,固定写死

    mybatis:
      table:
        auto: update
      model:
        pack: com.java.test.entity
      database:
        type: mysql
    
    mybatis-plus:
      mapper-locations: classpath:mapper/*.xml,classpath*:com/gitee/sunchenbin/mybatis/actable/mapping/*/*.xml
    

    3、Application

    com.gitee.sunchenbin.mybatis.actable… : 固定写死

    @MapperScan(basePackages = {"com.gitee.sunchenbin.mybatis.actable.dao.*","com.java.test.mapper"})
    @ComponentScan("com.gitee.sunchenbin.mybatis.actable.manager.*")
    

    4、entity

    1. @Id是主键
    2. @GeneratedValue 主键配置:
    参数描述
    AUTO主键由程序控制, 默认选项
    IDENTITY主键由数据库生成, 采用数据库自增长, Oracle不支持这种方式
    SEQUENCE通过数据库的序列产生主键, MYSQL 不支持
    Table提供特定的数据库产生主键, 该方式更有利于数据库的移植
    1. @GeneratedValue无效就使用@IsAutoIncrement
    2. @Column默认是VARCHAR类型
    3. @ColumnType指定其他类型,默认参数是enum对象MySqlTypeConstant
    @Data
    @Entity
    @Table(name = "t_table")
    public class Table {
        @Id
        @GeneratedValue(strategy=GenerationType.IDENTITY)
        @ColumnType(MySqlTypeConstant.INT)
        @IsAutoIncrement
        private Long id;
        @Column(length = 50)
        private String name;
        @Column(length = 50)
        private String age;
        @Column
        @ColumnType(value = MySqlTypeConstant.TEXT)
        private String text;
    
    }
    

    5、日志

    2022-09-29 09:29:37.621  INFO 11247 --- [main]  ......  : databaseType=mysql,开始执行mysql的处理方法
    2022-09-29 09:29:37.769  INFO 11247 --- [main]  ......  : {dataSource-1} inited
    2022-09-29 09:29:38.219  INFO 11247 --- [main]  ......  : 开始创建表:t_table
    2022-09-29 09:29:38.862  INFO 11247 --- [main]  ......  : 完成创建表:t_table
    
  • 相关阅读:
    YB4556系列 28V 高输入耐压4056 可支持4.2V 4.3V 电池 并且具有多种封装方式 可应用于电子烟 充电器 等各类产品
    PyG学习 - Dataset, DataLoader, Tranforms
    房屋信贷违约风险竞争(kaggle)系列4-基准模型
    项目框架:登录跳转页面
    Web Components与框架集成:Vue & React案例分析
    Python生成词云
    物联网TCP、UDP、CoAP、LwM2M、MQTT协议简单对比
    [SUCTF 2019]CheckIn (.htaccess和.user.ini)
    MyBatis-Plus —— 初窥门径
    DolphinDB 历史数据回放功能应用:股票行情回放
  • 原文地址:https://blog.csdn.net/zhaosongbin/article/details/127101066