参考文章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可以看下代码文件
测试
启动程序
再看数据库