首页 > 其他分享 >SpringBoot使用jdbcTemplate连接人大金仓按月备份表

SpringBoot使用jdbcTemplate连接人大金仓按月备份表

时间:2024-07-09 09:08:33浏览次数:8  
标签:log 金仓 SpringBoot format jdbcTemplate OPC TABLE transactionStatus String

  1. 方式一:采用SELECT * INTO FROM 复制表数据以及结构到新表,再清空原表并重置序列
    代码如下:
点击查看代码
private void pnsDataCopy() {
        log.info("{}===>表开始复制",PNS_TABLE);
        long l = System.currentTimeMillis();
        TransactionStatus transactionStatus = null;
        try {
            //开启事务
            transactionStatus = DsJdbcTxUtils.beginTransaction(pnsTxManager);
            //复制表结构以及数据到新表中
            jdbcTemplatePns.execute(String.format("SELECT * INTO %s FROM %s", getTableName(PNS_TABLE), PNS_TABLE));
            //清空旧表
            jdbcTemplatePns.execute(String.format("TRUNCATE TABLE %s", PNS_TABLE));
            //并把人大金仓中的OPC_TABLE表序列重新设置从1开始
            jdbcTemplatePns.execute(String.format("ALTER SEQUENCE %s RESTART WITH 1", PNS_TABLE_SEQ));
            //提交事务
            DsJdbcTxUtils.commitTransaction(pnsTxManager,transactionStatus);
            log.info("{}===>表复制完成",PNS_TABLE);
            log.info("耗时=:{}",System.currentTimeMillis()-l);
        } catch (DataAccessException e) {
            log.error("{},表数据复制和删除操作执行失败===>{}", PNS_TABLE, e.getMessage());
            DsJdbcTxUtils.rollbackTransaction(pnsTxManager,transactionStatus);
        }
    }
耗时: ![](/i/l/?n=24&i=blog/3391987/202407/3391987-20240708145339373-518562284.png)

2.方式二: 采用修改表名称,再新建跟表结构一致的原表

点击查看代码
private void opcDataCopy() {
        //获取备份表名
        log.info("{}===>表开始复制",OPC_TABLE);
        long l = System.currentTimeMillis();
        TransactionStatus transactionStatus = null;
        String tableName = getTableName(OPC_TABLE);
        try {
            //开启事务
            transactionStatus = DsJdbcTxUtils.beginTransaction(opcTxManager);
            //重命名表
            jdbcTemplateOpc.execute(String.format("ALTER TABLE %s RENAME TO %s", OPC_TABLE, tableName));
            //创建一个新表跟OPC_TABLE表结构一样
            jdbcTemplateOpc.execute(String.format("CREATE TABLE %s AS SELECT * FROM %s WHERE 1=0", OPC_TABLE, tableName));
            //把人大金仓中的OPC_TABLE_SEQ序列重新设置从1开始
            jdbcTemplateOpc.execute(String.format("ALTER SEQUENCE %s RESTART WITH 1", OPC_TABLE_SEQ));
            //给OPC_TABLE表设置序列OPC_TABLE_SEQ
            jdbcTemplateOpc.execute(String.format("ALTER TABLE %s ALTER COLUMN ID SET DEFAULT NEXTVAL('%s')", tableName, OPC_TABLE_SEQ));
            //提交事务
            DsJdbcTxUtils.commitTransaction(opcTxManager,transactionStatus);
            log.info("{}===>表复制完成",OPC_TABLE);
            log.info("耗时={}",System.currentTimeMillis()-l);
        } catch (DataAccessException e) {
            log.error("{},表数据复制和删除操作执行失败====>{}", OPC_TABLE , e.getMessage());
            DsJdbcTxUtils.rollbackTransaction(opcTxManager,transactionStatus);
        }
    }

标签:log,金仓,SpringBoot,format,jdbcTemplate,OPC,TABLE,transactionStatus,String
From: https://www.cnblogs.com/zhuoyb/p/18290435

相关文章

  • SpringBoot彩蛋之定制启动画面
    写在前面在日常开发中,我们经常会看到各种各样的启动画面。例如以下几种①spring项目启动画面②mybatisplus启动画面③若依项目启动画面还有很多各式各样好看的启动画面,那么怎么定制这些启动画面呢?一、小试牛刀①新建一个SpringBoot项目②在项目的resources目录下新......
  • springboot整合微信公众号实现模版消息推送
    欢迎来到我的博客,代码的世界里,每一行都是一个故事......
  • springboot星之语明星周边产品销售网站的设计与实现(文档+源码)
    大家好,我是永钊,一个混迹在java圈的码农,今天要和大家聊的是一款基于springboot的星之语明星周边产品销售网站,项目源码请联系永钊,目前有各类成品毕设javawebsshssmspringboot等等项目框架,源码丰富,欢迎咨询。 本网站系统是一个B/S模式系统,采用SpringBoot框架作为后台开......
  • springboot信息化在线教学平台的设计与实现(文档+源码)
    大家好,我是永钊,一个混迹在java圈的码农,今天要和大家聊的是一款基于springboot的信息化在线教学平台,项目源码请联系永钊,目前有各类成品毕设javawebsshssmspringboot等等项目框架,源码丰富,欢迎咨询。 本网站系统是一个B/S模式系统,采用SpringBoot框架,MYSQL数据库设计开发......
  • 基于SpringBoot+Vue+uniapp的汽车维修预约服务系统的详细设计和实现(源码+lw+部署文档
    文章目录前言详细视频演示具体实现截图技术栈后端框架SpringBoot前端框架Vue持久层框架MyBaitsPlus系统测试系统测试目的系统功能测试系统测试结论为什么选择我代码参考数据库参考源码获取前言......
  • 基于SpringBoot+Vue+uniapp的绿城郑州爱心公益网站的详细设计和实现(源码+lw+部署文档
    文章目录前言详细视频演示具体实现截图技术栈后端框架SpringBoot前端框架Vue持久层框架MyBaitsPlus系统测试系统测试目的系统功能测试系统测试结论为什么选择我代码参考数据库参考源码获取前言......
  • 基于SpringBoot+Vue+uniapp的社团服务系统的详细设计和实现(源码+lw+部署文档+讲解等)
    文章目录前言详细视频演示具体实现截图技术栈后端框架SpringBoot前端框架Vue持久层框架MyBaitsPlus系统测试系统测试目的系统功能测试系统测试结论为什么选择我代码参考数据库参考源码获取前言......
  • springboot(maven,本地jar包,打包报错)
    maven,本地jar包,打包报错情况:部署一个springboot+vue的项目(若依)项目中用到了一个"本地的第三方jar包"//为什么使用本地jar,因为我们使用的阿里云的maven没有这个jar包,只能使用本地自己的问题来了,打包时候报错:而且他用的是:本地路径导入:本地jar//(这个不影响本地运行,但是影......
  • SpringBoot返回文件让前端下载的几种方式
    0x01背景在后端开发中,通常会有文件下载的需求,常用的解决方案有两种:不通过后端应用,直接使用nginx直接转发文件地址下载(适用于一些公开的文件,因为这里不需要授权)通过后端进行下载,同时进行一些业务处理本篇主要以方法2进行介绍,方法2的原理步骤如下:读取文件,得到文件的字节流......
  • SpringBoot集成Kafka快速启动示例
    源码地址:https://github.com/ghdefe/kafka-demokafka消息发送接收示例1.启动kafka实例cat<<EOF>docker-compose.ymlversion:"2"services:zookeeper:image:docker.io/bitnami/zookeeper:3.8ports:-"2181:2181"-"......