我的编程空间,编程开发者的网络收藏夹
学习永远不晚

SpringBoot结合Mybatis实现创建数据库表的方法

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

SpringBoot结合Mybatis实现创建数据库表的方法

前言

系统环境:

  • JAVA JDK 版本:1.8
  • MySQL 版本:8.0.27
  • MyBatis 版本:3.5.9
  • SpingBoot版本: 2.6.2

为什么要通过应用实现创建表的功能

最近接了项目时,由于客户需要分库分表,而且每次手动创建很多表,可能是自己闲麻烦,于是乎就找了一些通过应用自动创建表的解决方案,其中本人比较熟悉使用 MyBatis,所以通过博文的形式给大家讲解一下,如何在 SpringBoot 环境中,使用 Mybatis 动态的创建数据库中的表的功能。

准备创建表的 SQL 语句

创建表 SQL 语句,内容如下:

CREATE TABLE IF NOT EXISTS `user`
(
    `id`       int(0)      NOT NULL AUTO_INCREMENT COMMENT '主键',
    `group_id` int(0)      NULL DEFAULT NULL COMMENT '组号',
    `username` varchar(20) NULL DEFAULT NULL COMMENT '用户名',
    `password` varchar(20) NULL DEFAULT NULL COMMENT '密码',
    PRIMARY KEY (`id`)
) ENGINE = InnoDB
  AUTO_INCREMENT = 9
  CHARACTER SET = utf8mb4 COMMENT ='用于测试的用户表';

实现通过 MyBatis 创建数据库表示例

目的就是解决通过 MyBatis 执行创建表的语句,从而实现创建数据库中的表的功能,实现代码如下:

在 Maven 中引入相关依赖

在 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="http://www.w3.org/2001/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-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

在 SpringBoot 配置文件中添加数据库配置

在 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?serverTimezone=Asia/Shanghai&useUnicode=true&useSSL=false&allowPublicKeyRetrieval=true
    hikari:
      pool-name: DatebookHikariCP
      minimum-idle: 5
      maximum-pool-size: 15
      max-lifetime: 1800000
      connection-timeout: 30000
      username: root
      password: 123456

# 指定 mapper 的 xml 文件位置
mybatis:
  mapper-locations: classpath:mappers
    void createTable(String tableName);

}

创建与 Mapper 关联的 XML 文件

创建一个用于和 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 '组号',
            `username` varchar(20) NULL DEFAULT NULL COMMENT '用户名',
            `password` varchar(20) NULL DEFAULT NULL COMMENT '密码',
            PRIMARY KEY (`id`)
        ) ENGINE = InnoDB
          AUTO_INCREMENT = 9
          CHARACTER SET = utf8mb4 COMMENT ='用于测试的用户表';
    </update>

</mapper>

创建用于测试的 Controller 类

创建一个用于测试的 Controller 类,里面提供一个创建表的接口,代码如下:

import club.mydlq.mappers.TableMapper;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;

@RestController
public class TestController {

    @Resource
    private TableMapper tableMapper;

    
    @PostMapping("/createTable")
    public ResponseEntity<String> createTableTest(@RequestParam String tableName) {
        try {
            // 创建数据库表
            tableMapper.createTable(tableName);
        } catch (Exception e) {
            return ResponseEntity.status(500).body("创建数据库表失败");
        }
        return ResponseEntity.ok("创建数据库表成功");
    }

}

创建 SpringBoot 启动类

创建一个用于启动 SpringBoot 的启动类,代码如下:

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }

}

调用创建表的接口进行测试

执行 curl 命令,使用 POST 方法调用之前示例项目 Controller 类中提供的创建表接口 /createTable,在数据库 test 中创建一个 user 表:

$ curl -X POST http://localhost:8080/createTable?tableName=user

执行完接口后,再进入数据库,输入下面命令观察库中是否创建包成功:

mysql> use test;
Database changed

mysql> show tables;
+----------------------------------------+
| Tables_in_test                         |
+----------------------------------------+
| user                                   |
+----------------------------------------+
1 rows in set (0.00 sec)

可以看到 test 库中已经成功创建了 user 表。

到此这篇关于SpringBoot结合Mybatis实现创建数据库表的方法的文章就介绍到这了,更多相关SpringBoot Mybatis创建数据库表内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

SpringBoot结合Mybatis实现创建数据库表的方法

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

SpringBoot结合Mybatis实现创建数据库表的方法是什么

这篇文章跟大家分析一下“SpringBoot结合Mybatis实现创建数据库表的方法是什么”。内容详细易懂,对“SpringBoot结合Mybatis实现创建数据库表的方法是什么”感兴趣的朋友可以跟着小编的思路慢慢深入来阅读一下,希望阅读后
2023-06-26

Springboot启动同时创建数据库和表实现方法

这篇文章主要介绍了Springboot启动同时创建数据库和表,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧
2023-01-14

oracle数据库创建表的方法

实际工作中,在数据库中创建表是经常会用到的。我们今天呢?主要给大家来分享一下在数据库如何通过sql语句去创建表。其实,创建表很简单,只需要把数据库的数据类型和约束搞清楚就可以了,其他的就好说了。接下来呢,开始我的表演。首先,先使用plsql
oracle数据库创建表的方法
2024-09-13

springBoot下怎么实现java自动创建数据库表

这篇文章主要介绍了springBoot下怎么实现java自动创建数据库表的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇springBoot下怎么实现java自动创建数据库表文章都会有所收获,下面我们一起来看看吧
2023-06-08

springboot整合mybatis实现数据库的更新批处理方式

这篇文章主要介绍了springboot整合mybatis实现数据库的更新批处理方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
2023-03-12

Android Studio中用SQLiteOpenHelper()方法创建数据库中的表结构

这篇博文写的是用SQLiteOpenHelper()方法创建数据库中的表结构,而如何用这个方法创建数据库,欢迎大家访问我的博文: 在android studio中用SQLiteOpenHelper()方法建立数据库 注:这篇文章是承接上面发
2022-06-06

MongoDB实现创建删除数据库、创建删除表(集合 )、数据增删改查

一、 数据库使用开启 mongodb 服务:要管理数据库,必须先开启服务,开启服务使用 mongod --dbpath c:\mongodb管理 mongodb 数据库:(一定要在新的 cmd 中输入)mongo清屏:cls查
2022-06-26

SpringBoot整合Mybatis Plus多数据源的实现方法是什么

这篇文章主要讲解了“SpringBoot整合Mybatis Plus多数据源的实现方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“SpringBoot整合Mybatis Plus多数
2023-06-25

springBoot中如何实现java自动创建数据库表功能

小编给大家分享一下springBoot中如何实现java自动创建数据库表功能,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!SpringBoot环境启动项目创建数据
2023-06-20

springboot怎么整合mybatis实现数据库的更新批处理

本文小编为大家详细介绍“springboot怎么整合mybatis实现数据库的更新批处理”,内容详细,步骤清晰,细节处理妥当,希望这篇“springboot怎么整合mybatis实现数据库的更新批处理”文章能帮助大家解决疑惑,下面跟着小编的
2023-07-05

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录