mysql创建临时表以及springboot mybatis 操作临时表

一:语句

drop table if exists a_temp;
create table a_temp
select  content from article

 

二:springboot mybatis下临时表的创建和删除,可用于查重去重

/**
     * 创建临时表
     */
    @Update({"drop temporary table if exists ${tableName};", "create temporary table ${tableName} select doctor_id from crm_speaker where  1=2 "})
    void createTemoraryTable(@Param("tableName") String tableName);

    /**
     * 保存数据到临时表里面以便校验数据重复
     */
    @Insert("<script>" +
            "insert into ${tableName} (doctor_id) values\n" +
            "    <foreach collection=\"list\" item=\"doct\" index=\"index\" separator=\",\">\n" +
            "       (" +
            "       #{doct.doctorId,jdbcType=VARCHAR}\n" +
            "       )\n" +
            "    </foreach>\n" +
            "</script>")
    void insertBatchCheckDatas(@Param("list") List<SpeakerDO> dOs, @Param("tableName") String tableName);


    /**
     * 删除临时表
     */
    @Update({"drop temporary table if exists ${tableName}"})
    void dropTemporaryTable(@Param("tableName") String tableName);

 

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MyBatis使用临时表的方式和在普通 SQL 语句中使用临时表的方式是一样的。 首先需要在 SQL 语句中创建临时表,然后再进行相关操作。下面以 MySQL 数据库为例,演示如何在 MyBatis使用临时表。 1. 创建临时表MySQL 中,可以使用以下语句创建临时表: ```sql CREATE TEMPORARY TABLE temp_table ( id INT PRIMARY KEY, name VARCHAR(20) ); ``` 2. 在 MyBatis使用临时表 首先,在 MyBatis 的 Mapper 文件中定义 SQL 语句,并将创建临时表的 SQL 语句和相关操作的 SQL 语句写在一起,例如: ```xml <mapper namespace="com.example.mapper.TempTableMapper"> <select id="queryTempTable" resultType="java.util.Map"> <![CDATA[ CREATE TEMPORARY TABLE temp_table ( id INT PRIMARY KEY, name VARCHAR(20) ); INSERT INTO temp_table (id, name) VALUES (1, '张三'); INSERT INTO temp_table (id, name) VALUES (2, '李四'); SELECT * FROM temp_table; ]]> </select> </mapper> ``` 在上面的例子中,先创建了一个临时表 `temp_table`,然后插入了两条数据,最后查询了整个表。 3. 调用 Mapper 方法执行 SQL 语句 在 Java 代码中,调用 Mapper 方法执行 SQL 语句即可,例如: ```java public interface TempTableMapper { List<Map<String, Object>> queryTempTable(); } public class MyBatisTest { public static void main(String[] args) { SqlSession sqlSession = MyBatisUtil.getSqlSession(); TempTableMapper tempTableMapper = sqlSession.getMapper(TempTableMapper.class); List<Map<String, Object>> resultList = tempTableMapper.queryTempTable(); System.out.println(resultList); sqlSession.close(); } } ``` 最后,执行 Java 代码即可看到查询结果。需要注意的是,在 MyBatis创建临时表只在当前的会话中存在,在会话关闭时会自动删除。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值