2012-02-09 44 views
2

iam嘗試將行插入到java中的sql表中。我需要與2個不同的data.here使用2-查詢dbo.Company從一些操作獲得到一個單一的表我如何編寫單個查詢來插入數據

statement1.executeUpdate("insert into 
    dbo.Company(CName,DateTimeCreated,DateTimeLastModified) 
    values('"+cname[i]+"','"+ts+"','"+ts+"')"); 

    statement3.executeUpdate("insert into 
    dbo.Company(CName,DateTimeCreated,DateTimeLastModified) 
    values('"+EMpname[i]+"' ,'"+ts+"','"+ts+"')"); 

我需要插入CNAME [i]和EMpname插入數據正在插入表simulateneously [我]到dbo.Company使用單個查詢...請幫助寫這個查詢。在形式上

回答

1

使用INSERT語句:

INSERT Table(fields) 
VALUES 
    (set1), 
    (set2), 
    ..., 
    (setN) 

你的情況是:自2008年以來

statement1.executeUpdate("insert into 
dbo.Company(CName,DateTimeCreated,DateTimeLastModified) 
values('"+cname[i]+"','"+ts+"','"+ts+"'), 
('"+EMpname[i]+"' ,'"+ts+"','"+ts+"')"); 
+0

這給我以下錯誤連接到數據庫[Microsoft] [ODBC SQL Server驅動程序] [SQL Server]附近''錯誤的語法異常。 – user1063145 2012-02-09 08:59:27

+0

已更新的答案。 – 2012-02-09 09:06:53

+0

:正在顯示。類型的註釋不-source 1.5 支持(使用-source 7或更高版本來啓動類型註釋) 預計 – user1063145 2012-02-09 09:20:09

1
String query = "insert into 
dbo.Company(CName,DateTimeCreated,DateTimeLastModified) 
values('"+cname[i]+"','"+ts+"','"+ts+"');" + "insert into 
dbo.Company(CName,DateTimeCreated,DateTimeLastModified) 
values('"+EMpname[i]+"' ,'"+ts+"','"+ts+"')"; 

statement1.executeUpdate(query); 
+0

出現此錯誤: - 連接忙於另一個hstmt的結果行插入SQL數據庫 – user1063145 2012-02-09 09:06:37

+0

@ user1063145這不是查詢錯誤,重試它 – 2012-02-09 09:31:39

0

我會推薦使用一個交易離子。

Transaction tx = session.beginTransaction(); 
statement1.executeUpdate("insert into 
dbo.Company(CName,DateTimeCreated,DateTimeLastModified) 
values('"+cname[i]+"','"+ts+"','"+ts+"')"); 

statement3.executeUpdate("insert into 
dbo.Company(CName,DateTimeCreated,DateTimeLastModified) 
values('"+EMpname[i]+"' ,'"+ts+"','"+ts+"')"); 
tx.commit(); 

這確保了無論是成功執行的所有語句或他們都不(回滾)。 我也會考慮使用參數化查詢來避免SQL注入:https://www.owasp.org/index.php/Preventing_SQL_Injection_in_Java#Prepared_Statements

相關問題