执行大容量导入

神通JDBC驱动提供了ImportHandler对象用于发送INSERT BULK语句执行大容量数据导入。大容量导入提供了一种自定义的一种数据导入方式,提高了数据导入的性能,并给第三方开发提供了一套通用的API。

创建ImportHandler

建立了到神通KSTORE的连接之后,就可以使用该连接发送INSERT BULK语句。ImportHandler对象通过Connection接口的方法createImportHandler创建,例如:

			handler = ((BaseConnection) con).createImportHandler("TEMP");

在创建ImportHandler对象的时候,可以通过参数来指定导入属性。

使用ImportHandler执行普通大容量导入

ImportHandler接口提供了一套通用的接口。 ImportHandler对象执行导入的语句是INSERT BULK语句, 语法如下:

insert_bulk ::=

hint ::=

执行普通导入时,ImportHandler对象先设置属性,然后绑定列数据,最后execute()执行导入。

	@Test
	public void testImportHandler() {
		ImportHandler handler = null;
		try {
			stmt = con.createStatement();
			
			// 导入数据
			handler = ((BaseConnection) con).createImportHandler("TEMP");
			handler.setNullDataProcessMode(ImportHandler.NULL_DATA_PROCESS_MODE_NULL);
			handler.setInt(1, 1);
			handler.setString(2, "shentong");
			handler.endRow();
			handler.execute();
			long count = handler.getUpdateCount();
			assertEquals(1, count);
			
			stmt.close();
			handler.close();
		} catch (SQLException e) {
			fail(e.getMessage());
		}
	}

关闭ImportHandler对象

尽管当Connection关闭时,会将由它创建的ImportHandlert对象关闭,但是作为一种好的编程风格,对于不再使用的ImportHandler对象应显式地关闭它们,这可以使ImportHandler对象使用的外部资源立即被释放。当一个对象不需要时,应该尽早地释放他们。