在不操作数据库的情况下,使用接口在 SpringBoot 项目中创建 MySQL 数据库表格

最近有一个业务是需要将计算后的数据进行存库操作,突发奇想,是否有一种方式,可以不操作数据库,在项目代码中使用 sql 语句进行建表。

准备工作,集成 MyBatis 的 SpringBoot 项目。可参考以下文章,本文示例就是在这个基础上开发的。

SpringBoot 项目整合 MyBatis 框架,附带测试示例

1、准备建表的 sql 语句

语句还有很多可添加的操作,类似于,表格存在就不再重新建表等功能。

另外,这个是要对应数据库,如果是 MySQL 数据库就要用 MySQLsql 语法,如果是 Oracle 数据库要用 Oraclesql 语法。本文的示例是使用 MySQL 数据库。

CREATE TABLE students (  
    id INT AUTO_INCREMENT PRIMARY KEY,  
    name VARCHAR(100) NOT NULL,  
    age INT,  
    email VARCHAR(100) UNIQUE  
);

接下来,我们需要将 sql 语句放入到 mapper.xml 文件中。

2、构建含 sql 语句的 mapper.xml 文件

<?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="com.wen.mapper.SchemaMapper">
    <insert id="runSingleScript">
        SELECT 1;
    </insert>

    <update id="runScript">
        CREATE TABLE student (
            id INT AUTO_INCREMENT PRIMARY KEY,
            name VARCHAR(100) NOT NULL,
            age INT,
            email VARCHAR(100) UNIQUE
        );
    </update>
</mapper>

3、创建对应的 mapper

package com.wen.mapper;

import org.apache.ibatis.annotations.Param;

public interface SchemaMapper {

	// 运行 sql 脚本
    void runScript(@Param("tableSuffix") String tableSuffix);

    void runSingleScript();

}

4、Controller 接口调用

package com.wen.controller;

import com.wen.mapper.SchemaMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("/api")
public class TaskController {

    @Autowired
    private SchemaMapper schemaMapper;

    @GetMapping("schema")
    public String schema() {
        schemaMapper.runScript("schema");
        return "success";
    }
}

调用接口就可以创建表格了。

除了使用接口外,还可以用到项目启动时,设定标识在配置文件,项目重启时执行一次。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值