【问题标题】:Creating a JAVA database from code. Statement wont execute and create table?从代码创建 JAVA 数据库。语句不会执行并创建表?
【发布时间】:2016-11-30 02:01:23
【问题描述】:

我不确定为什么我的程序没有创建表格,但我还需要一些关于如何在表格创建后用这样的代码填充表格的想法?我还需要在这个数据库中再添加两个表。

这是我得到的错误:

java.sql.SQLSyntaxErrorException: Table/View 'PIZZASIZE' does not exist.
Caused by: ERROR 42X05: Table/View 'PIZZASIZE' does not exist.
Caused by: java.lang.RuntimeException: Exception in Application start method
Caused by: javafx.fxml.LoadException: file:/C:/Users/Allie/Documents/NetBeansProjects/Pizzeria_AllieBeckman/dist/run1674141987/Pizzeria_AllieBeckman.jar!/pizzeria_alliebeckman/FXMLDocument.fxml

这是应该创建表的代码:

        // connect to the derby URL using the given username and password
        connect = DriverManager.getConnection("jdbc:derby://localhost:1527/pizzeria;create=true", connectProps);
        // current url for pre created database "jdbc:derby://localhost:1527/pizza"
        // if connection is successful print that it succeeded.
        System.out.println("database created");

        stmt = connect.createStatement();

        String sqlCreate = "CREATE TABLE PIZZASIZE "
            + "(id int NOT NULL, "
            + "size char(20) NOT NULL, "
            + "PRIMARY KEY (id))";

        stmt.execute(sqlCreate); 

【问题讨论】:

  • 试试stmt.executeUpdate(sqlCreate)
  • 与 stmt.executeUpdate(sqlCreate) 相同的错误 :(
  • System.out.println("database created");这被执行了吗?
  • 是的,确实可以打印

标签: java sql database database-connection derby


【解决方案1】:

根据您使用的 IDE,您可以在控制台中手动创建表,而无需费心编写代码。以下是一些关于如何从表格中获取信息的示例。

Connection conn = CreatingDerbyDJB.dbConnection();

            try{
                String query = "INSERT INTO  Items (Name,Color,ItemName,SchoolName, Description) VALUES(?,?,?,?, ?)";
                PreparedStatement pstmt = conn.prepareStatement(query);


                pstmt.execute();
                conn.close();
              }catch(Exception e)
            {
                  e.printStackTrace();
            }       }

以下是 Connection 类的外观: 主包;

import java.sql.Connection;
import java.sql.DriverManager;

import javax.swing.JOptionPane;

public class CreatingDerbyDJB 
{
    public static final String DRIVER = "org.apache.derby.jdbc.EmbeddedDriver";
    public static final String JDBC_URL  = "jdbc:derby:LostAndFoundDB";
    public static Connection dbConnection()
    {
        try
        {
            Class.forName(DRIVER).newInstance();
            Connection c = DriverManager.getConnection(JDBC_URL);
            return c;
        }catch(Exception e)
        {
            JOptionPane.showMessageDialog(null, e);
            return null;
        }
    }
}

如果这对您有帮助,请批准此答案,如果没有意义,我很乐意解释。 :)

【讨论】:

  • 谢谢,这是很好的信息!准备好的语句正在创建一个表,但我似乎无法填充它,而且我对“setString(x, xxx)”方法有点困惑。我只需要表格中的 ID 和“大小”列,其中只有 4 个选项。
  • 要填充表,您必须像使用常规数据库编程语言一样使用插入查询。您将根据表的名称插入它,然后在括号中列出列。然后指定要插入的值。另外,对于我忘记删除的程序中的代码 setString 感到抱歉,哈哈
猜你喜欢
  • 2013-03-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-05
相关资源
最近更新 更多