[英]BULK INSERT into Few Tables in Java
我将BULK INSERT添加到应用程序中,我的代码如下所示:
public void insertData(String filename, JTextField txt)
{
File f = new File(txt.getText());
String path = f.getAbsolutePath();
String createString = "BULK INSERT dummy_import FROM ' " + path + "\\" +filename+ ".txt' WITH (FIELDTERMINATOR = ',')";
String createStringdet = "BULK INSERT dummy_import_det FROM " + path + "\\" +filename+ ".txt WITH (FIELDTERMINATOR = ',')";
List <DummyImpor> dummyimpor = new ArrayList<DummyImpor>();
List <DummyImporDet> dummyimpordet = new ArrayList<DummyImporDet>();
int jml_kemasan = 0;
float bm = 0;
try
{
// Create and execute an SQL statement that returns some data.
String SQL = "BULK INSERT dbo.dummy_import FROM ' " + path + "\\" +filename+ ".txt' WITH (FIELDTERMINATOR = ',') UNION BULK INSERT dbo.dummy_import_det FROM ' " + path + "\\" +filename+ ".txt' WITH (FIELDTERMINATOR = ',')";
DBConnection connect = new DBConnection();
PreparedStatement ps = connect.getCon().prepareStatement(SQL);
for (DummyImpor d: dummyimpor) {
ps.setString(1, d.getSk_import());
ps.setString(2, d.getSk_batch());
ps.setString(3, d.getNo_pib());
ps.setInt(4, d.getJml_kemasan());
for (DummyImporDet dt: dummyimpordet){
ps.setString(5, dt.getSk_import_det());
ps.setString(6, dt.getNo_hs());
ps.setFloat(7, dt.getBm_hs());
}
ps.addBatch();
}
ps.executeBatch(); // insert remaining records
ps.close();
}
catch(Exception e)
{
System.out.println(e.getMessage());
System.exit(0);
}
}
当我运行它时,但尚未导入数据,而该代码用于导入文本文件/数据。 有人知道解决方案吗?
如果您使用的是MSSQL,这似乎是BCP Utility的一项工作。 将两个数据集插入到临时表中,然后使用所需的记录对表进行SELECT INTO将会更快。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.