贸易公司 网站 扶持,网站备案必须要幕布吗,一流的天津网站建设,做pc端网站机构参考文章#xff1a;
Using bulk copy with the JDBC driver SqlServer数据批量写入 SqlServer批量插入数据方法–SqlBulkCopy
sqlserver buld copy需要提供#xff0c;数据文件的对应表的元数据信息主要的字段的位置、字段的名称、字段的数据类型。 执行bulk load时候不一…参考文章
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 dbval schema scval 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};encryptfalse;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)}}}