系统环境:
java jdk 版本:1.8mysql 版本:8.0.27mybatis 版本:3.5.9spingboot版本: 2.6.2最近接了项目时,由于客户需要分库分表,而且每次手动创建很多表,可能是自己闲麻烦,于是乎就找了一些通过应用自动创建表的解决方案,其中本人比较熟悉使用 mybatis,所以通过博文的形式给大家讲解一下,如何在 springboot 环境中,使用 mybatis 动态的创建数据库中的表的功能。
创建表 sql 语句,内容如下:
create table if not exists `ur`( `id` int(0) not null auto_increment comment '主键', `group_id` int(0) null default null comment '组号', `urname` varchar(20) null default null comment '用户名', `password` varchar(20) null default null comment '密码', primary key (`id`)) engine = innodb auto_increment = 9 character t = utf8mb4 comment ='用于测试的用户表';
目的就是解决通过 mybatis 执行创建表的语句,从而实现创建数据库中的表的功能,实现代码如下:
在 maven的 pom.xml文件中,引入 springboot、mysql、mybytis 等依赖,内容如下:
<?xml version="1.0" encoding="utf-8"?><project xmlns="http://maven.apache.org/pom/4.0.0" xmlns:xsi="/d/file/titlepic/xmlschema-instance" xsi:schemalocation="http://maven.apache.org/pom/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelversion>4.0.0</modelversion> <parent> <groupid>org.springframework.boot</groupid> <artifactid>spring-boot-starter-parent</artifactid> <version>2.6.2</version> </parent> <groupid>club.mydlq</groupid> <artifactid>springboot-mybatis-create-table-example</artifactid> <version>1.0.0</version> <name>springboot-mybatis-example</name> <description>springboot mybatis create table example project</description> <properties> <java.version>1.8</java.version> </properties> <dependencies> <!-- web --> <dependency> <groupid>org.springframework.boot</groupid> <artifactid>spring-boot-starter-web</artifactid> </dependency> <!-- lombok --> <dependency> <groupid>org.projectlombok</groupid>年终奖计算器 <artifactid>lombok</artifactid> <optional>true</optional> </dependency> <!-- mysql --> <dependency> <groupid>mysql</groupid> <artifactid>mysql-connector-java</artifactid> </dependency> <!-- mybatis --> <dependency> <groupid>org.mybatis.spring.boot</groupid> <artifactid>mybatis-spring-boot-starter</artifactid> <version>2.2.1</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupid>org.springframework.boot</groupid> <artifactid>spring-bo惠崇春江晚景的意思ot-maven-plugin</artifactid> </plugin> </plugins> </build></project>
在 springboot 的 application.yml 文件中,添加数据库连接的参数,配置内容如下:
spring: application: name: springboot-mybatis-create-table-example # 数据库配置 datasource: type: com.zaxxer.hikari.hikaridatasource driverclassname: com.mysql.cj.jdbc.driver url: jdbc:mysql://127.0.0.1:3306/test?rvertimezone=asia/shanghai&uunicode=true&ussl=fal&allowpub交流电源lickeyretrieval=true hikari: pool-name: datebookhikaricp minimum-idle: 5 maximum-pool-size: 15 max-lifetime: 1800000 connection-timeout: 30000 urname: root password: 123456# 指定 mapper 的 xml 文件位置mybatis: mapper-locations: classpath:mappers/*.xml
创建一个用户建表的 mybatis 的 mapper 接口,代码如下:
import org.apache.ibatis.annotations.mapper;@mapperpublic interface tablemapper { /** * 创建数据库表 * * @param tablename 表名称 */ void createtable(string tablename);}
创建一个用于和 mapper 接口关联的 xml 文件 tablemapper.xml,在里面添加用于创建表的 sql 语句,内容如下:
<?xml version="1.0" encoding="utf-8"?><!doctype mapper public "-//mybatis.org//dtd mapper 3.0//en" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="club.mydlq.mappers.tablemapper"> <!--创建表的 sql 语句--> <update id="createtable" parametertype="java.lang.string"> create table if not exists `${tablename}` ( `id` int(0) not null auto_increment comment '主键', `group_id` int(0) null default null comment '组号', `urname` varchar(20) null default null comment '用户名', `password` varchar(20) null default null comment '密码', primary key (`id`) ) engine = innodb auto_increment = 9 character t = utf8mb4 comment ='用于测试的用户表'; </update></mapper>
创建一个用于测试的 controller 类,里面提供一个创建表的接口,代码如下:
import club.mydlq.mappers.tablemapper;import org.springframework.http.responentity;import org.springframework.web.bind.annotation.*;import javax.annotation.resource;@restcontrollerpublic class testcontroller { @resource private tablemapper tablemapper; /** * 创建数据库表 * * @param tablename 表名称 * @return 是否创建成功 */ @postmapping("/createtable") public responentity<string> createtabletest(@requestparam string tablename) { try { // 创建数据库表 tablemapper.createtable(tablename); } catch (exception e) { return responentity.status(500).body("创建数据库表失败"); } return responentity.ok("创建数据库表成功"); }}
创建一个用于启动 springboot 的启动类,代码如下:
import org.springframework.boot.springapplication;import org.springframework.b休假条oot.autoconfigure.springbootapplication;@springbootapplicationpublic class application { public static void main(string[] args) { springapplication.run(application.class, args); }}
执行 curl 命令,使用 post 方法调用之前示例项目 controller 类中提供的创建表接口 /createtable,在数据库 test 中创建一个 ur 表:
$ curl -x post http://localhost:8080/createtable?tablename=ur
执行完接口后,再进入数据库,输入下面命令观察库中是否创建包成功:
mysql> u test;databa changedmysql> show tables;+----------------------------------------+| tables_in_test |+----------------------------------------+| ur |+----------------------------------------+1 rows in t (0.00 c)
可以看到 test 库中已经成功创建了 ur 表。
到此这篇关于springboot结合mybatis实现创建数据库表的方法对老婆的甜言蜜语的文章就介绍到这了,更多相关springboot mybatis创建数据库表内容请搜索www.887551.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持www.887551.com!
本文发布于:2023-04-04 16:09:12,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/405b9bd84546455d17ee175d61a5dea7.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:SpringBoot结合Mybatis实现创建数据库表的方法.doc
本文 PDF 下载地址:SpringBoot结合Mybatis实现创建数据库表的方法.pdf
留言与评论(共有 0 条评论) |