2017-05-08 47 views
0

我试过使用jdbc在配置单元中操作数据。当我使用选择或创建操作时,一切正常。但是,当我试图使用插入添加一些行像表:如何通过jdbc将数据插入到配置单元表中?

String sql = "insert into agg_test_20170508 values (20170508, 100)"; 
Class.forName(JDBC_Driver); 
connection = DriverManager.getConnection(JDBC_String, ID, pwd); 
Statement stmt = connection.createStatement(); 
System.out.println(D_FORMAT.format(new Date()) + " Running:\r\n" + sql); 
ResultSet res = stmt.executeQuery(sql); 
System.out.println(D_FORMAT.format(new Date()) + " QUERY COMPELET."); 

但过了很长时间,没有返回。使用jdbc连接到配置单元时是否有任何限制?

我公司的hadoop版本是0.20.2。

回答

0

你必须使用executeUpdate用INSERT,UPDATE,DELETE:

int res = stmt.executeUpdate(sql); 

INT的executeUpdate(字符串SQL):执行一个INSERT,UPDATE或DELETE语句,并返回指示的 行数的更新帐户受影响(例如插入了1行,或更新了2行,或者影响了0行 )。

ResultSet executeQuery(String sql):执行SELECT语句并返回一个ResultSet对象,其中包含由 查询返回的结果。

+1

问题解决了! thx〜 –

0

请使用代替executeQuery方法

+1

它看起来像一个评论,而不是一个答案。请解释说明理由。 – Blip

0

的executeQuery()---这通常是用于读取数据库的内容executeUpdate方法。输出将以ResultSet的形式显示。通常使用SELECT语句。

executeUpdate()---这通常用于修改数据库。通常在此使用DROP TABLE或DATABASE,INSERT到TABLE,UPDATE TABLE,DELETE TABLE语句。输出将以int的形式出现。该int值表示查询所影响的行数。

execute()---如果您不知道使用哪种方法来执行SQL语句,则可以使用此方法。这将返回一个布尔值。 TRUE表示结果是ResultSet,FALSE表示它具有int值,表示查询所影响的行数。

相关问题