网站建设任务平台,建设教育协会官方网站,北京酷站科技有限公司,网站毕设代做多少钱介绍
ACTable是对Mybatis做的增强功能#xff0c;支持SpringBoot以及传统的SpringMvc架构#xff0c;配置简单#xff0c;使用方便。主要是自动生成数据库表#xff0c;直接修改java代码#xff0c;数据库就会对应的变化#xff0c;省去在调整数据库表的问题#xff0c…介绍
ACTable是对Mybatis做的增强功能支持SpringBoot以及传统的SpringMvc架构配置简单使用方便。主要是自动生成数据库表直接修改java代码数据库就会对应的变化省去在调整数据库表的问题在开发阶段非常实用。
本项目使用的springboot3.2.2版本集成MybatisMybatis-plus, ACTable组件.
配置文件
# actable的配置信息
actable:table:auto: createmodel:pack: com.xxx.yours_project.*.entitydatabase:type: mysql#actable.index.prefix自己定义的索引前缀#该配置项不设置默认使用actable_idx_#actable.unique.prefix自己定义的唯一约束前缀#该配置项不设置默认使用actable_uni_# mybatis自有的配置信息key也可能是mybatis.mapperLocations
mybatis-plus:configuration:log-impl: org.apache.ibatis.logging.stdout.StdOutImplmapper-locations: classpath*:com/gitee/sunchenbin/mybatis/actable/mapping/*/*.xmltype-handlers-package: com.xxx.yours_project.base.utilspringboot3.0以后ACTable的自启动已经失效先要配置主动启动
SpringBootApplication
MapperScan(com.gitee.sunchenbin.mybatis.actable.dao.*)
ComponentScan(basePackages {com.gitee.sunchenbin.mybatis.actable.manager.*})
public class YywjSupportApplication {public static void main(String[] args) {ConfigurableApplicationContext run SpringApplication.run(YywjSupportApplication.class, args);// 容器中获取actable的核心处理类StartUpHandler bean run.getBean(StartUpHandler.class, args);// 手动执行actable的建表方法bean.startHandler();}
}异常
在使用Mybatis-plus时需要注意
配置文件中是mybatis-plus.mapper-locations在build.gradle文件中引入的是com.baomidou:mybatis-plus-boot-starter而非com.baomidou:mybatis-plus在使用自定义handle时要注意 MapperType, 开始时作者使用MappedTypes({List.class, String.class})但是启动后报错原因是Mybatis将这个handle滥用了导致失败改用Component项目正常启动不再报错 慎用MapperType
//MappedTypes({List.class, String.class})
Component
public class ListStringHandle implements TypeHandlerListString {Overridepublic void setParameter(PreparedStatement preparedStatement, int i, ListString strings, JdbcType jdbcType) throws SQLException {if (CollectionUtils.isNotEmpty(strings)) {preparedStatement.setString(i, strings.stream().collect(Collectors.joining(,)));} else {preparedStatement.setString(i, null);}}Overridepublic ListString getResult(ResultSet resultSet, String s) throws SQLException {if (StringUtils.isNotEmpty(resultSet.getString(s))) {return Arrays.asList(resultSet.getString(s).split(,));}return null;}Overridepublic ListString getResult(ResultSet resultSet, int i) throws SQLException {if (StringUtils.isNotEmpty(resultSet.getString(i))) {return Arrays.asList(resultSet.getString(i).split(,));}return null;}Overridepublic ListString getResult(CallableStatement callableStatement, int i) throws SQLException {if (StringUtils.isNotEmpty(callableStatement.getString(i))) {return Arrays.asList(callableStatement.getString(i).split(,));}return null;}
}