【sqlserver】mssql 批量加载数据文件 bulk copy使用

参考文章:

Using bulk copy with the JDBC driver
SqlServer数据批量写入
SqlServer批量插入数据方法–SqlBulkCopy

sqlserver buld copy需要提供,数据文件的对应表的元数据信息主要的字段的位置、字段的名称、字段的数据类型。
执行bulk load时候不一定要在sqlserver所在机器执行,即使sqlserver服务在docker里也能执行。
SQLServerBulkCSVFileRecord需要的列元数据类型就是java.sql.JDBCType里的类型,通过java.sql.JDBCType.getVendorTypeNumber方法获取到int值。

本例文件格式:textfile,字段分隔符(delimiter)‘|’

代码,kotlin格式

import java.sql.JDBCType
import com.microsoft.sqlserver.jdbc.*
import java.sql.DriverManager
import java.sql.SQLException
import java.sql.Statement
import java.sql.Connectionval database ="db"val schema = "sc"val record: SQLServerBulkCSVFileRecord = SQLServerBulkCSVFileRecord("path of the data file", "utf-8", "delimiter", "firstLineIsColumnNames")destTblName = "${schema}.${table}"// 注意要添加所有字段的元数据信息。record.addColumnMetadata(               "position of this field: start from 1","field name","jdbc type","precision: char/varchar length or decimal precision,date etc fill with 0","scale: decimal scale","dateTimeFormatter")val connectionUrl ="jdbc:sqlserver://${host}:${port};encrypt=false;databaseName=${database}"DriverManager.getConnection(connectionUrl, "username", "password").use{conn ->conn.createStatement().use { stmt ->SQLServerBulkCopy(conn).use { bulkCopy ->// delete before bulk load!// stmt.executeUpdate("DELETE FROM ${tpc.name}")bulkCopy.destinationTableName = destTblName // colMapSupplier.forEach{(k,v)-> bulkCopy.addColumnMapping(k,v)}// Write from the source to the destination.bulkCopy.writeToServer(record)}}}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/34861.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

力扣1401. 圆和矩形是否有重叠

用矢量计算&#xff1a; class Solution { public:bool checkOverlap(int radius, int xCenter, int yCenter, int x1, int y1, int x2, int y2) {//矩形中心float Tx(float)(x1x2)/2;float Ty(float)(y1y2)/2;//强行进行对称操作&#xff0c;只考虑第一象限if(xCenter<Tx)…

GESP202303 一级【长方形面积】题解(AC)

》》》点我查看「视频」详解》》》 AC_Code #include <bits/stdc.h> using namespace std;int main() {int n;cin >> n;int cnt 0;for(int i 1; i < n; i )for(int j i; j < n; j )if(i * j n)cnt ;cout << cnt;return 0; }》》》点我查看「视频」…

QT 中 QMessageBox 的简单用法

效果 思路 // 创建一个question弹出对话框&#xff0c;添加两个按钮&#xff1a;Yes和NoQMessageBox *box new QMessageBox(QMessageBox::Question, "提示", "确认删除的信息吗&#xff1f;", QMessageBox::Yes | QMessageBox::No, this);box->button(…

航空美食新升级,光明肉业携手东航食品打造经典辣肉面新篇章

在航空餐饮日益注重品质与创新的大环境下&#xff0c;各大航空公司纷纷在美食领域下功夫&#xff0c;力求为乘客提供更加多元化、高品质的餐饮体验。近日&#xff0c;东航那碗面再次成为行业焦点&#xff0c;其经典辣肉面在光明肉业的助力下实现了“创新”升级&#xff0c;为乘…

Mybatis-Flex的简单入门,Mybatis-Flex和其它框架对比

前言 最近做项目&#xff0c;项目组必须要用Mybatis-Flex&#xff0c;然后自己去学了一下&#xff0c;给大家进行分享。 MyBatis-Flex 是 MyBatis 的一个增强工具&#xff0c;旨在简化 MyBatis 的使用并提高开发效率。它通过提供一系列的便捷方法和特性来减少重复代码的编写&am…

离线安装ollama到服务器

搜了很多教程不满意,弄了半天才弄好&#xff0c;这里记录下&#xff0c;方便以后的人用&#xff0c;那个在线下载太慢&#xff0c;怕不是得下载到明年。 一.从官网下在liunx版的tgz安装包 Releases ollama/ollama (github.com) 查看自己的服务器信息&#xff08;参考 https:/…

六款实用的开发工具的分享

文章目录 开发工具的分享一、nignx playground&#xff1a;模拟生成nginx示例二、Json在线可视化工具三、pycharm技巧四、web页面与服务器交互工具-gotty五、定时任务管理工具六、node版本管理工具 开发工具的分享 一、nignx playground&#xff1a;模拟生成nginx示例 https:…

Docker 安装 Yapi

Docker 安装系列 Docker已安装。 1、场景Yapi使用的MongoDB用户信息 1.1 创建自定义 Docker 网络 首先&#xff0c;创建一个自定义的 Docker 网络&#xff0c;以便 MongoDB 和 YApi 容器可以相互通信 [rootflexusx-328569 data]# docker network create yapi-networ…

【LeetCode】每日一题 2024_12_5 捕获黑皇后需要的最少移动次数(分类讨论)

前言 每天和你一起刷 LeetCode 每日一题~ LeetCode 启动&#xff01; 题目&#xff1a;捕获黑皇后需要的最少移动次数 代码与解题思路 先读题&#xff1a;题目给了三枚棋子&#xff0c;目标就是求出能在几步之内将皇后吃掉 具体的分类讨论见代码注释 核心思路&#xff1a;…

关于数据库连接数突然上升问题,如何进行排查

1、假设您有一个 Java 应用程序 myapp.jar&#xff0c;您可以使用以下命令启动它&#xff0c;并启用 JMX 远程管理&#xff1a; java -Dcom.sun.management.jmxremote \-Dcom.sun.management.jmxremote.port8888 \-Dcom.sun.management.jmxremote.rmi.port8080 \-Dcom.sun.man…

数据结构:顺序表详解

1.顺序表的概念与定义 2.顺序表的初始化与销毁 3.顺序表的头/尾部的插入与删除 4.顺序表指定位置的插入和删除 4.对顺序表中的数据的查找 5.总结 我以过客之名&#xff0c;祝你前程似锦 一.顺序表的概念与定义 1.概念&#xff1a; 顺序表是在计算机内存中以数组的形式保…

【算法】棋盘覆盖问题源代码及精简版

目录 一、题目 二、样例 三、示例代码 四、精简代码 五、总结 对于棋盘覆盖问题的解答和优化。 一、题目 输入格式&#xff1a; 第一行&#xff0c;一个整数n&#xff08;棋盘n*n&#xff0c;n确保是2的幂次&#xff0c;n<64&#xff09; 第二行&#xff0c;两个整数…

摩尔线程 国产显卡 MUSA 并行编程 学习笔记-2024/12/04

Learning Roadmap&#xff1a; Section 1: Intro to Parallel Programming & MUSA Deep Learning Ecosystem&#xff08;摩尔线程 国产显卡 MUSA 并行编程 学习笔记-2024/11/30-CSDN博客&#xff09;UbuntuDriverToolkitcondapytorchtorch_musa环境安装(2024/11/24-Ubunt…

App如何跨线上线下、跨渠道、跨终端归因分析

随着渠道分布多元化、生态割裂加剧、用户时间碎片化等趋势&#xff0c;多渠道投放已经成为不可阻挡的广告投放趋势。 但是App营销推广渠道那么多&#xff0c;既要确保广告效果好&#xff0c;又要避免广告资源浪费&#xff0c;有限的媒体预算应该分配给哪几个渠道&#xff1f;哪…

leetcode 3001. 捕获黑皇后需要的最少移动次数 中等

现有一个下标从 1 开始的 8 x 8 棋盘&#xff0c;上面有 3 枚棋子。 给你 6 个整数 a 、b 、c 、d 、e 和 f &#xff0c;其中&#xff1a; (a, b) 表示白色车的位置。(c, d) 表示白色象的位置。(e, f) 表示黑皇后的位置。 假定你只能移动白色棋子&#xff0c;返回捕获黑皇后…

Day6:生信新手笔记 — R包安装与R包使用

R包是多个函数的集合。学生信使用R语言的原因是丰富的图表和Biocductor上面的各种生信分析R包。 一、安装和加载R包 1.设置镜像 镜像网站相当于主网站的副本&#xff0c;访问主网站存在障碍时&#xff0c;访问镜像网站也可。选择国内的镜像可加快访问速度。运行这两行代码&a…

Spring源码解读

文章目录 Spring简单容器(以BeanFactory为主)Spring高级容器(以ApplicationCOntext为主)ListableBeanFactoryobtainFreshBeanFactory()获取BeanFactorySpring源码学习:一篇搞懂@Autowire和@Resource注解的区别Spring简单容器(以BeanFactory为主) Spring高级容器(以Appl…

达梦数据库客户端安装方法

达梦数据库客户端安装方法 达梦客户端下载地址 产品下载 | 达梦数据库 下载完成后以后是这样子的 dm8_20241011_x86_win_64.zip 然后解压 解压后的结果 双击iso的文件 然后选中 然后下一步 自定义安装路径然后下一步 安装 然后直接在开始这里搜DM管理工具 然后配置连接即…

【北京迅为】iTOP-4412全能版使用手册-第五十五章 字符类GPIOS

iTOP-4412全能版采用四核Cortex-A9&#xff0c;主频为1.4GHz-1.6GHz&#xff0c;配备S5M8767 电源管理&#xff0c;集成USB HUB,选用高品质板对板连接器稳定可靠&#xff0c;大厂生产&#xff0c;做工精良。接口一应俱全&#xff0c;开发更简单,搭载全网通4G、支持WIFI、蓝牙、…

LabVIEW算法执行时间评估与Windows硬件支持

在设计和实现复杂系统时&#xff0c;准确估算算法的执行时间是关键步骤&#xff0c;尤其在实时性要求较高的应用中。这一评估有助于确定是否需要依赖硬件加速来满足性能需求。首先需要对算法进行时间复杂度分析并进行实验测试&#xff0c;了解其在Windows系统中的运行表现。根据…