当前位置: 首页 > 知识库问答 >
问题:

Derby DB:表/视图不存在错误42X05

殷宇
2023-03-14

>

  • 安装了一个Derby DB,并打开了一个名为“MyDbTest”的连接
  • 我使用SQL命令为“MyDbTest”连接创建了一个名为BOOK的表:

    创建表BOOK(ID INT、DESCRIPTION VARCHAR(20)、UNITCOST VARCHAR(20)、ISBN VARCHAR(20)、nbofpage INT);

    我通过使用命令运行Derby服务器:"starNetworkServer.bat"

    公共班机{

      public static void main(String[] args) throws SQLException, ClassNotFoundException {
    
            System.out.println("\n\n>>> Executing : " + Main.class.toString() + " <<<\n");    
            persistBook(new Book(new Long(5000), "H2G2", "Best IT Scifi Book", new Float(12.5), "1234-5678-5678",
                    new Integer(247)));    
            Book book = findBook(new Long(5000));    
           System.out.println("# " + book);
      }
    
      /**
       * Gets a database connection
       */
      static {
        try {
          Class.forName("org.apache.derby.jdbc.ClientDriver");
        } catch (ClassNotFoundException e) {
          e.printStackTrace();
        }
      }
    
      private static Connection getConnection() throws SQLException {
            return DriverManager.getConnection("jdbc:derby://localhost:1527/MyDbTest;create=true", "app", "app");
      }
    
      /**
       * Persists the book to the database
       */
      private static void persistBook(Book book) throws SQLException {
    
        String query = "INSERT INTO BOOK (ID, TITLE, DESCRIPTION, UNITCOST, ISBN, NBOFPAGE) VALUES (?, ?, ?, ?, ?, ?)";
    
        try (PreparedStatement stmt = getConnection().prepareStatement(query)) {
    
                stmt.setLong(1, book.getId().longValue());
          stmt.setString(2, book.getTitle());
          stmt.setString(3, book.getDescription());
                stmt.setFloat(4, book.getUnitCost().longValue());
          stmt.setString(5, book.getIsbn());
                stmt.setInt(6, book.getNbOfPage().intValue());
    
          stmt.executeUpdate();
        }
      }
    }
    

    我犯了一个错误:

    线程“main”java中出现异常。sql。SQLSyntaxErrorException:表/视图“BOOK”不存在
    原因:错误42X05:表/视图“BOOK”不存在。

    我还阅读了本文中提出的解决方案:每次连接derby数据库时是否需要创建表?。不幸的是,他们都没有帮助我。

    1. 我更改了“jdbc:derby://localhost:1527/MyDbTest;create=true“to”jdbc:derby://localhost:1527/MyDbTest;create=false“
  • 共有1个答案

    龙承德
    2023-03-14

    出现此错误是因为我在SELECT语句中使用了数据库名称,而不是表的名称。

     类似资料:
    • 我在Android studio生成的视图绑定文件中遇到此错误。我已添加 到应用程序版本。gradle文件。

    • 问题内容: 在我的Android项目中,我有imageButton,单击它之后,它必须使用imageView打开新的Activity,在我的新Activity中,我必须只能看到ImageButton的大字体图像,图像大小为17mb,并且内存不足错误。但是我的代码适用于较小尺寸的图像。有人可以帮助调整图像大小或更改某些位图选项或以其他方式提出建议吗?我是android的新手,对不起,英语不好:) 这

    • 我正在尝试在NetBeans 8.0.2 IDE和GlassFish 4.1中运行一个名为(JSF with Facelets)的web应用程序,该应用程序通过托管bean中的以下代码访问关系数据库: 当我运行应用程序时,我在浏览器中得到以下错误: AddressBean。java第157行是: 通过以下步骤创建包含ADDRESSES表的addressbook数据库: > 右键单击GlassFis

    • 问题内容: 规格: Laravel版本:5.5.3 PHP版本:7.1 数据库驱动程序和版本:MariaDB 10.1.26 描述: 重现步骤: 问题 它创建用户表并给出错误,但不创建列表表 问题答案: 我通过更改我的create_users_table.php解决了自己的问题

    • 问题内容: 在配置hibernate.cfg.xml中,我添加 Hibernate并在运行应用程序时自动创建表。但是,我通过运行drop table sql从数据库中手动删除该表。然后再次运行hibernate应用程序。出现异常 引起原因:com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:表’test.person’不存在 解决该问

    • 问题内容: 关闭。 此问题不符合堆栈溢出准则。它当前不接受答案。 想要改善这个问题吗? 更新问题,使它成为Stack Overflow的主题。 7年前关闭。 改善这个问题 我正在尝试将Oracle数据库连接到我的JAVA Web项目。当使用系统用户连接创建到数据库的连接时,将成功建立连接。 但是当我在连接中执行一个简单的select *命令时,它说 错误代码942,SQL状态42000:ORA-0