首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >创建返回错误值的数据库的代码

创建返回错误值的数据库的代码
EN

Stack Overflow用户
提问于 2014-05-10 15:16:47
回答 1查看 27关注 0票数 0

在我的spring项目中,我有以下代码来创建应用程序将使用的数据库:

代码语言:javascript
复制
        int result = stmt.executeUpdate("CREATE DATABASE horario WITH OWNER "+usuario+";");
        System.out.println("result = "+result);
        if(result > 0) {
            System.out.println("calling_create_tables");
            create_tables(maquina, usuario, senha);
            rs.close();
            stmt.close();
            conn.close();
            return true;
        }

问题是,尽管数据库是正常创建的,但变量结果总是接收值0,这是导致if中代码不执行的原因。

有人知道为什么会这样吗?

ps.:该类的完整代码如下:livre/blob/master/src/com/horariolivre/service/InstallService.java

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-10 15:20:57

变量结果总是接收值0,这是导致if中代码不执行的原因。

来自Statement#executeUpdate javadoc:

返回: (1) (DML)语句的行计数,或(2) 0表示不返回任何的SQL语句。

在您的示例中,您正在执行一个DDL语句,该语句不返回任何内容,因此您的输出将始终为0。这并不意味着语句没有被执行,而是底层实现应该如何运行(而且它是可以的)。

顺便说一句,在JDBC中,您不应该在SQL语句中附加分号,所以在语句末尾移除分号:

代码语言:javascript
复制
//no semicolon at the end
int result = stmt.executeUpdate("CREATE DATABASE horario WITH OWNER "+ usuario);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23582761

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档