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();
为什么即使在成功创建表并且还使用drop table查询之后它也会打印0。虽然声明它返回更新或删除的实体数,但它不能返回1?
答案 0 :(得分:4)
它返回受影响的行数。在您的情况下,不会更新/删除任何行,这就是它返回0的原因。
executeUpdate()
应该用于在实体上执行更新或删除语句,而不是用于DDL查询。
答案 1 :(得分:2)
表创建和删除在技术上不会影响任何数据库实体;因此,为什么它返回0.只有在INSERT,UPDATE和DELETE期间,您才会看到非零值。