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语句后的代码不执行的主要内容,如果未能解决你的问题,请参考以下文章
try{}里有一个return语句,那么紧跟在这个try后的finally{}里的代码会不会被执行,什么时候被执行,在return前还是后?