Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用java在Sql Server表中插入多行_Java_Database_Sql Server 2008_Jdbc_Sql Insert - Fatal编程技术网

使用java在Sql Server表中插入多行

使用java在Sql Server表中插入多行,java,database,sql-server-2008,jdbc,sql-insert,Java,Database,Sql Server 2008,Jdbc,Sql Insert,嗨,我想实现以下目标 insert into t1 (c1,c2) values (v1,v2) 上述事务将为创建的行创建唯一标识符。比如说UIDT1 现在我想在另一个表中执行多个插入,如 insert into t2 (c1,c2,c3) values (UIDT1,v2,v3) insert into t2 (c1,c2,c3) values (UIDT1,v2,v3) insert into t2 (c1,c2,c3) values (UIDT1,v2,v3) . . . 使用Java

嗨,我想实现以下目标

insert into t1 (c1,c2) values (v1,v2)
上述事务将为创建的行创建唯一标识符。比如说UIDT1

现在我想在另一个表中执行多个插入,如

insert into t2 (c1,c2,c3) values (UIDT1,v2,v3)
insert into t2 (c1,c2,c3) values (UIDT1,v2,v3)
insert into t2 (c1,c2,c3) values (UIDT1,v2,v3)
.
.
.
使用Java,我可以将所有查询写在一个文本文件中,逐个读取并创建所有事务,但我想知道是否有更有效的方法来实现这一点。 需要你的投入

注意:我使用的是SpringJDBC


目的:单元测试,创建用户(t1)和用户详细信息(t2)考虑到使用新数据库运行的测试,我首先创建用户和用户详细信息,然后使用该用户测试其他场景。

您可以这样做

String [] queries = {
    "insert into t2 (c1,c2,c3) values (UIDT1,v2,v3)",
    "insert into t2 (c1,c2,c3) values (UIDT1,v2,v3)",
    "insert into t2 (c1,c2,c3) values (UIDT1,v2,v3)"
};
try{
connectionObject.setAutoCommit(false);
Statement statement = connectionObject.createStatement();

for (String query : queries) {
    statement.addBatch(query);
}
statement.executeBatch();
connectionObject.commit();
}
catch(SQLException e){
e.printStackTrace(); 
}
finally{
//closing statements 
}

我使用SpringJDBC来执行多个插入,您可以在批处理中使用PreparedStatement。这里有更多信息: