2016-11-30 9 views
1

Я не уверен, почему моя программа не создает таблицу, но мне также нужны некоторые идеи о том, как заполнить таблицу с помощью кода, подобного этому, когда он будет создан? Мне нужно добавить еще две таблицы в эту базу данных.Создание базы данных JAVA из кода. Заявление не выполняется и создает таблицу?

Это ошибка, я получаю:

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); 
+0

попробовать 'stmt.executeUpdate (sqlCreate)' –

+0

же ошибка с stmt.executeUpdate (sqlCreate) :( –

+0

'System.out.println ("создана база данных");?' Это выполняется –

ответ

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; 
     } 
    } 
} 

Утвердить этот ответ, если бы это помогло вам, я был бы рад объяснить, если это не имеет смысла. :)

+0

Спасибо, это хорошая информация! Готовый оператор работает над созданием таблицы, но я не могу ее заполнить, и я немного запутался в методе setString (x, xxx). Мне нужен только идентификатор и столбец «размер» в таблице, и в нем будет всего 4 параметра. –

+1

Чтобы заполнить таблицу, вы должны использовать вставку в запрос, как если бы вы работали с обычным языком программирования баз данных. Вы вставляете ее на основе имя вашей таблицы затем перечислите столбцы в parenthasis, а затем укажите значения, которые вы хотите вставить. Кроме того, извините за setString, которая была кодом из моя программа, я забыл удалить lol – Aaron

+0

Хорошо, похоже, что сейчас работает :) спасибо! –

 Смежные вопросы

  • Нет связанных вопросов^_^