当前位置: 代码迷 >> 综合 >> Springboot+Maven+Mybatis-enhance-actable 根据实体类自动更新数据库表和字段
  详细解决方案

Springboot+Maven+Mybatis-enhance-actable 根据实体类自动更新数据库表和字段

热度:4   发布时间:2023-10-31 06:53:31.0

参考文章springboot+mybatis/mybatis-plus根据实体类自动创建数据库表,我在上面加了需要修改的说明

目录

pom.xml

application.yml

DataSourceConfig和MyBatisMapperScannerConfig问题

entity

测试


pom.xml

        <!--mybatis-plus启动器--><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>2.2.0</version></dependency><!--创建表的插件--><dependency><groupId>com.gitee.sunchenbin.mybatis.actable</groupId><artifactId>mybatis-enhance-actable</artifactId><version>1.1.1.RELEASE</version></dependency><!-- 连接池 --><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.1.10</version></dependency>

启动器和连接池用自己的就行,不用非得我的

application.yml

mybatis:table:auto: update#create	    系统启动后,会将所有的表删除掉,然后根据model中配置的结构重新建表,该操作会破坏原有数据。#update	    系统会自动判断哪些表是新建的,哪些字段要修改类型等,哪些字段要删除,哪些字段要新增,该操作不会破坏原有数据。#none 		系统不做任何处理。#add		新增表/新增字段/新增索引/新增唯一约束的功能,不做做修改和删除 (只在版本1.0.9.RELEASE及以上支持)。model:pack: com.cei.xyd_cz.entity #扫描用于创建表的对象的包名,多个包用“,”隔开database:type: mysql #数据库类型 目前只支持mysql
# Mybatis-plus
mybatis-plus:# 放在resource目录 classpath:/mapper/*Mapper.xmlmapper-locations: classpath:/mapper/*Mapper.xml,classpath*:com/gitee/sunchenbin/mybatis/actable/mapping/*/*.xmlglobal-config:# 主键类型  0:"数据库ID自增", 1:"用户输入ID",2:"全局唯一ID (数字类型唯一ID)", 3:"全局唯一ID UUID";id-type: 2# 字段策略 0:"忽略判断",1:"非 NULL 判断",2:"非空判断"field-strategy: 1# 驼峰下划线转换db-column-underline: false# 刷新mapper 调试神器refresh-mapper: true# SQL 解析缓存,开启后多租户 @SqlParser 注解生效sql-parser-cache: trueconfiguration:map-underscore-to-camel-case: falsecache-enabled: false# 配置JdbcTypeForNull, oracle数据库必须配置jdbc-type-for-null: 'null'

DataSourceConfig和MyBatisMapperScannerConfig问题

这俩我写了之后,因为我用的是plus,所以自己的Mapper没有问题,使用plus的BaseMapper里的查询全部报 

Invalid bound statement (not found)

后来我的更改是直接在启动类上加的注解扫描

代码

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

 注意,后面的com.gitee.sunchenbin不要改,那个是actable里的,前面的包改成自己的

entity

随便找个实体类试一下

关于@Column可以看下代码文件

测试

 启动程序

 再看数据库

 

  相关解决方案