Mybatis之操作DDL语句

Mybatis之DDL语句

一、MySQL引言:

近年来,开源数据库逐渐流行起来。由于具有免费使用、配置简单、稳定性好、性能优良等优点,开源数据库在中低端应用上占据了很大的市场份额,而 MySQL 正是开源数据库中最具有代表性的一个。MySQL 数据库目前分为社区版(Community Server)和企业版(Enterprise),其最重要的区别在于:社区版是自由下载而且完全免费的,但是官方不提供任何技术支持,适用于大多数普通用户;而企业版则是收费的,不能在线下载,相应地,它提供了更多的功能和更完备的技术支持,更适合于对数据库的功能和可靠性要求较高的企业客户,常用于企业。

SQL 类别:

  1. DDL(Data Definition Languages)语句:数据定义语言,这些语句定义了不同的数据段、数据库、表、列、索引等数据库对象的定义。常用的语句关键字主要包括 create、drop、alter等。

  2. DML(Data Manipulation Language)语句:数据操纵语句,用于添加、删除、更新和查询数据库记录,并检查数据完整性,常用的语句关键字主要包括 insert、delete、udpate 与 select 等。

  3. DCL(Data Control Language)语句:数据控制语句,用于控制不同数据段直接的许可和访问级别的语句。这些语句定义了数据库、表、字段、用户的访问权限和安全级别。主要的语句关键字包括 grant、revoke 等。

二、MyBatis引言:

MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以对配置和原生Map使用简单的 XML 或注解,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。

相信大家在开发中基本都是使用的MyBatis进行操作数据库的吧,但你是不是只会操作简单的DML(即增删改查)语句呐,有没有想过MyBatis还可以帮我们创建表、修改表、创建触发器等其他操作呐。下面我就带大家一起欣赏几个简单的demo吧,但别小看只是几个简单的小例子,它可以带你看见你之前没看到、甚至没想到的东西哦。

三、一起来看看吧:

简单编写如下程序:

Controller层:

package com.boot.crm.controller;

import com.boot.crm.UserService.IUserService;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

/**
 * @ClassName DemoController
 * @Description DemoController
 * @Author Kang
 * @Company 康康小课堂
 * @Date 2019/11/29 6:11
 * @Version 1.0
 */
@Controller
@RequestMapping("/")
public class DemoController {

    private IUserService userService;

    /**
     * 使用MyBatis创建MySQL触发器
     */
    @RequestMapping("/createTigger")
    public void createTigger(){
        userService.createTigger();
    }

    /**
     * 使用注解进行表的创建
     */
    @RequestMapping("/createTable")
    public void createTable(){
        userService.createTable();
    }
}

Service层:

package com.boot.crm.UserService.impl;


import com.boot.crm.UserService.IUserService;
import com.boot.crm.mapper.UserMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class UserService implements IUserService {

    private UserMapper userMapper;

    @Autowired
    public UserService(UserMapper userMapper) {
        this.userMapper = userMapper;
    }

    /**
     * 使用MyBatis创建MySQL触发器
     */
    @Override
    public void createTigger() {
        userMapper.createTigger("userTigger");
    }

    /**
     * 使用注解进行表的创建
     */
    @Override
    public void createTable() {
        userMapper.createTable();
    }
}

Mapper:

    /**
     * 使用MyBatis创建MySQL触发器
     * @param value 触发器名称
     */
    void createTigger(String value);

    /**
     * 使用注解进行创建表
     */
    @Update("create table t_user2 as select * from t_user")
    void createTable();

XML :

    <update id="createTigger" parameterType="string">
        create trigger ${value} after insert on t_user for each row
            begin
                insert into
                    t_user(`username`, `password`,`age`,`createDate`)
                VALUES
                    ('kang', 'root', 22, '2019-11-30 06:10:32');
            end;
    </update>

五、看图识结果

对此,代码就没了,是不是也很简单呐,然后再一起看几张结果图吧
原始表数据及触发器:
原始

原始

添加触发器:
触发器

创建t_user2表:
创建表

有图真相你还在犹豫什么,还不快动手试一试!!!


   转载规则


《Mybatis之操作DDL语句》 kang 采用 知识共享署名 4.0 国际许可协议 进行许可。
  目录