springboot+mybatis-plus实现自动建表的示例
好长时间没输出了,最近工作上也是太多事,领导动不动就拍脑门,那叫一个酸爽~
工作能力的提现不但是技术或解决问题的能力上,还体现在要能立刻满足领导的各种需求,不管是哪方面的需求,这样才能够拍上马屁,步步高升。
言归正传,作为技术从业者,还是要多深耕技术。有小伙伴问,在springboot工程中,持久层采用的mybatis框架,如何能够自动建表,一个团队中各个小伙伴针对新增需求会添加或修改表,但各自调试时,数据库表更新又不及时,造成很大不便。下面记录一下springboot+mybatis-plus实现自动建表。
1、环境
- springboot2.x
- mybatis-plus3.5.0
- mybatis-enhance-actable1.1.1.RELEASE
- mysql5.7.x
- idea开发工具
2、新建springboot工程
2.1、pom依赖如下
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.5.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>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </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> </dependency> </dependencies>
2.2、application配置
server: port: 9001 spring: #数据库配置 datasource: url: jdbc:mysql://localhost:3306/test?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8&useSSL=false driver-class-name: com.mysql.cj.jdbc.Driver username: root password: root #自动建表设置 mybatis: table: #create系统启动后,会将所有的表删除掉,然后根据model中配置的结构重新建表,该操作会破坏原有数据; #update系统会自动判断哪些表是新建的.哪些字段要修改类型等,哪些字段要删除,哪些字段要新增,该操作不会破坏原有数据; #add新增表/新增字段/新增索引新增唯一约束的功能,不做做修改和删除(只在版本1.0.9.RELEASE及以上支持); #none系统不做任何处理; auto: update model: #扫描用于创建表的对象的包名 pack: com.*.*.model database: #数据库类型目前只支持mysql type: mysql #mybatis-plus mybatis-plus: #固定的 mapper-locations: classpath*:com/gitee/sunchenbin/mybatis/actable/mapping/*/*.xml
注意,mybatis-plus是固定的,采用的是mybatis-enhance-actable插件。
3、集成mybatis-plus
启动类配置如下
@SpringBootApplication @MapperScan("com.*.*.mapper") @ComponentScan("com.*.*.*") @MapperScan({"com.gitee.sunchenbin.mybatis.actable.dao.*"})//固定的 @ComponentScan("com.gitee.sunchenbin.mybatis.actable.manager.*")//固定的 public class SpringbootMybatisPlus2Application { public static void main(String[] args) { SpringApplication.run(SpringbootMybatisPlus2Application.class, args); } }
注意,固定的是采用的是mybatis-enhance-actable插件。
实体类配置如下
@Data @Table(name = "t_test") @TableName(value = "t_test") public class Test { @TableId(value = "id",type = IdType.AUTO) @IsKey @IsAutoIncrement @Column(name = "id",comment = "主键") private Long id; @TableField(value = "name") @Column(name = "",comment = "名称",isNull = false) private String name; @TableField(value = "create_time") @Column(name = "create_time",comment = "创建时间") private String creatTime; @Column(name = "update_time",comment = "修改时间") private String updateTime; }
注解分别为mybatisplus提供的、mybatis-enhance-actable提供的,前者的注解是用来进行持久层操作的(增删改查),后者的注解是用来进行自动建表的。
4、业务操作
mapper类如下
@Mapper public interface TestMapper extends BaseMapper<Test> { }
service类如下
public interface TestService extends IService<Test> {}
@Service public class TestServiceImpl extends ServiceImpl<TestMapper, Test> implements TestService { }
controller类如下
@RestController @RequiredArgsConstructor public class TestController { private final TestServiceImpl testService; @GetMapping("/hello") public Object hello() { return "hello"; } @GetMapping("/save") public Object save() { Test test = new Test(); test.setName("caocao"); testService.save(test); return test; } @GetMapping("/list") public Object list() { List<Test> list = testService.list(); return list; } }
5、测试结果
启动服务,结果类似如下
访问结果如下
到此这篇关于springboot+mybatis-plus实现自动建表的示例的文章就介绍到这了,更多相关springboot mybatisplus自动建表内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
- SpringBoot mybatis-plus使用json字段实战指南
- SpringBoot实现mysql与clickhouse多数据源的项目实践
- SpringBoot配置Clickhouse的示例代码
- springboot 使用clickhouse实时大数据分析引擎(使用方式)
- Springboot集成ClickHouse及应用场景分析
- springboot 整合 clickhouse的实现示例
- springboot+mybatis配置clickhouse实现插入查询功能
- SpringBoot2 整合 ClickHouse数据库案例解析
- Springboot集成Mybatis-plus、ClickHouse实现增加数据、查询数据功能
相关文章
IDEA mybatis Mapper.xml报红的最新解决办法
这篇文章主要介绍了IDEA mybatis Mapper.xml报红的解决办法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2023-04-04Idea中如何调出Run dashboard 或services窗口
这篇文章主要介绍了Idea中如何调出Run dashboard 或services窗口问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2023-03-03解决mybatis批量更新(update foreach)失败的问题
这篇文章主要介绍了解决mybatis批量更新(update foreach)失败的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2020-11-11关于服务网关Spring Cloud Zuul(Finchley版本)
这篇文章主要介绍了关于服务网关Spring Cloud Zuul(Finchley版本),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2022-03-03
最新评论