boolean b=stat.execute("create table a(f1 varchar(10))");如果以上语句可以执行,数据库也建立了一个表"a",但为什么返回值是false,没建立反而是"true".

解决方案 »

  1.   

    因为你返回的结果集是空的,不信你插条记录再查询执行就是true了
      

  2.   

    好好看看 JDK 稳当,看看上面是怎么解释这个方法的返回值的。
      

  3.   

    看了一下,没太明白,所以才上这问。按我自己的理解,成功建立数据库那应该返回TRUE才对。而不是false
      

  4.   

    该方法的返回值:
    true if the first result is a ResultSet object; false if it is an update count or there are no results所谓“the first result”,意思就是说这个操作实际上会有多个结果。怎么得到这多个结果呢?调用 getResultSet() 或者 getUpdateCount() 方法获得当前(第1个)结果,然后调用 getMoreResults() 方法移至下一个结果,这样循环。select 方法总是返回一个ResultSet,包含选中的表记录;update、delete、insert方法总是返回一个Update Count,包含受到该命令影响的行数(比如如果是 delete 命令则表示该命令的执行使得多少行被删除)。至于 create table 命令,即使执行成功,既不存在什么返回结果集,也不存在影响哪一行记录,所以根据文档定义,只能返回 false。那么为什么执行失败会返回 true 呢?这是留给楼主的家庭作业,作完了记得贴上来~~
      

  5.   

    不是“select 方法”,而是“select 命令”,不好意思。下面的错误类似。
      

  6.   

    在数据库环境里 执行sql 都会有一句: 影响多少行纪录
                                        **************
      

  7.   

    那是否意味着我虽然创建了表,但影响记录为0,所以才返回false?