gpt4 book ai didi

java - Sybase JConnect : ENABLE_BULK_LOAD usage

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:36:46 24 4
gpt4 key购买 nike

谁能提供一个通过 JConnect(使用 ENABLE_BULK_LOAD)向 Sybase ASE 批量插入的示例?

我已经搜索了互联网,但一无所获。

最佳答案

我与 Sybase 的一位工程师取得了联系,他们为我提供了代码示例。所以,我要回答我自己的问题。

基本上这里是一个纲要,因为代码示例非常大......这假设有很多预初始化变量,否则它会是几百行。任何有兴趣的人都应该明白这一点。在完美世界中,这每秒最多可以产生 22K 次插入(无论如何按照 Sybase)。

SybDriver sybDriver = (SybDriver) Class.forName("com.sybase.jdbc3.jdbc.SybDriver").newInstance();
sybDriver.setVersion(com.sybase.jdbcx.SybDriver.VERSION_6);
DriverManager.registerDriver(sybDriver);

//DBProps (after including normal login/password etc.
props.put("ENABLE_BULK_LOAD","true");

//open connection here for sybDriver

dbConn.setAutoCommit(false);
String SQLString = "insert into batch_inserts (row_id, colname1, colname2)\n values (?,?,?) \n";

PreparedStatement pstmt;
try
{
pstmt = dbConn.prepareStatement(SQLString);
}
catch (SQLException sqle)
{
displaySQLEx("Couldn't prepare statement",sqle);
return;
}

for (String[] val : valuesToInsert)
{
pstmt.setString(1, val[0]); //row_id varchar(30)
pstmt.setString(2, val[1]);//logical_server varchar(30)
pstmt.setString(3, val[2]); //client_host varchar(30)

try
{
pstmt.addBatch();
}
catch (SQLException sqle)
{
displaySQLEx("Failed to build batch",sqle);
break;
}
}

try {
pstmt.executeBatch();
dbConn.commit();
pstmt.close();
} catch (SQLException sqle) {
//handle
}

try {
if (dbConn != null)
dbConn.close();
} catch (Exception e) {
//handle
}

关于java - Sybase JConnect : ENABLE_BULK_LOAD usage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2112395/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com