2015-12-14 28 views
0
String sql="create table temptable (name varchar(2 Byte))"; 
    Transaction tx=session1.beginTransaction(); 
    Query query=session1.createSQLQuery(sql); 
    int a=query.executeUpdate(); 

    System.out.println(a);tx.commit(); 

爲什麼在創建成功表後還打印0,並且還有一個drop table查詢。它聲明它返回實體的數量更新或刪除,不應該返回1?query.executeUpdate()在休眠狀態下爲創建表查詢返回什麼

回答

1

表創建和刪除在技術上不影響任何數據庫實體;因此爲什麼它返回0.只有在INSERT,UPDATE和DELETE期間纔會看到非零值。

1

它返回受影響的行數。在你的情況下,沒有行被更新/刪除,這就是爲什麼它返回0.

executeUpdate()應該用於執行實體更新或刪除語句,而不是DDL查詢。