H2语句后的代码不执行

Posted

技术标签:

【中文标题】H2语句后的代码不执行【英文标题】:code after H2 statement is not executed 【发布时间】:2014-05-27 21:20:36 【问题描述】:

语句后面的代码没有执行,为什么呢?该语句是否返回?

conn.createStatement().execute("CREATE TABLE IF NOT EXISTS WEBSITES(ID INT auto_increment, NAME VARCHAR)");
conn.createStatement().execute("INSERT INTO WEBSITES(NAME) VALUES('"+website+"')");
System.out.println(parts[0]);

【问题讨论】:

可能是因为抛出了一种异常而您忽略了它。考虑提供一个可运行的示例来演示您的问题 假设您启用了自动提交,您可能需要致电executeUpdate executeUpdate 是正确的解决方案 =) 或者我应该禁用自动提交,但我认为我必须更改我的代码?如果可能,请发布您的评论作为答案链接到文档(为什么执行和执行更新之间有区别,它是什么?)所以我知道一些细节。 【参考方案1】:

你需要使用executeUpdate(),

执行给定的 SQL 语句,可能是 INSERT、UPDATE 或 DELETE 语句或不返回任何内容的 SQL 语句,例如 SQL DDL 语句。

也可能是H2的表演“feature”。

【讨论】:

以上是关于H2语句后的代码不执行的主要内容,如果未能解决你的问题,请参考以下文章

坑到了,EF执行带事物的存储过程

python条件判断语句

条件选择

H2 不允许使用集合内的连接执行选择

SQL语句中连接on条件和where条件的执行顺序

try{}里有一个return语句,那么紧跟在这个try后的finally{}里的代码会不会被执行,什么时候被执行,在return前还是后?