Ява встроенный дерби стол / вид - PullRequest
0 голосов
/ 15 февраля 2011

Я создал базу данных Embedded Derby, это выдает мне ошибку. Хотя у меня есть схема APP, в которой создана таблица REST

java.sql.SQLSyntaxErrorException: Table/View 'REST' does not exist.
at org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(Unknown Source)
at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown Source)
at org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(Unknown Source)
at org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(Unknown Source)
at org.apache.derby.impl.jdbc.EmbedConnection.handleException(Unknown Source)
at org.apache.derby.impl.jdbc.ConnectionChild.handleException(Unknown Source)
at org.apache.derby.impl.jdbc.EmbedStatement.execute(Unknown Source)
at org.apache.derby.impl.jdbc.EmbedStatement.execute(Unknown Source)

, вот класс Java:

public class Main
{   
    private static String dbURL = "jdbc:derby:tes;create=true";
    private static String tableName = "REST";
    // jdbc Connection
    private static Connection conn = null;
    private static Statement stmt = null;

    public static void main(String[] args)
    {
        createConnection();
       insertRestaurants(5, "LaVals", "Berkeley");
        selectRestaurants();
        shutdown();
    }

    private static void createConnection()
    {
        try
        {
         // System.setProperty("derby.system.home", "/Users/myuser/futbol");
          Class.forName("org.apache.derby.jdbc.EmbeddedDriver");
            //Get a connection
            conn = DriverManager.getConnection(dbURL);
        }
        catch (Exception except)
        {
            except.printStackTrace();
        }
    }
     private static void insertRestaurants(int id, String restName, String cityName)
    {
        try
        {
            stmt = conn.createStatement();
            stmt.execute("insert into REST values (" +
                    id + ",'" + restName + "','" + cityName +"')");
            stmt.close();
        }
        catch (SQLException sqlExcept) 
        {
            sqlExcept.printStackTrace();
        }
    }

}

Ответы [ 6 ]

2 голосов
/ 11 апреля 2015

Я знаю, что за этим уже четыре года, но я наконец узнал, как я решил свою проблему (и поэтому я в этой теме).

Я создал свою таблицу с помощью редактора сценариев базы данных.Я использовал двойные кавычки вокруг моего стола.Я узнал об этом, когда перешел на вкладку сервиса (netbeans) и щелкнул правой кнопкой мыши по моей таблице, чтобы просмотреть данные.Я получил это:

select * from {schema}."{table}"

Итак, я думал, что переведу это на мой Java.И Бинго.Надеюсь, это поможет пролить свет на ваше приложение, я скопировал и вставил часть вашего кода, и, надеюсь, это сработает.

public class Db {
    private final String url = "jdbc:derby://localhost:1527/{db}";
    private final String tab = "{schema}.\"REST\"";

    private static Connection createConnection() throws Exception {
         Connection conn = null;
         conn = DriverManager.getConnection(url);
         return conn;
    }

    private static void insertRestaurants(int id, String restName, String cityName)
    {
        try
        {
            Connection conn = createConnection();
            stmt = conn.createStatement();
            stmt.execute("insert into " + table + " values (" +
                    id + ",'" + restName + "','" + cityName +"')");
            stmt.close();
        }
        catch (SQLException sqlExcept) 
        {
            sqlExcept.printStackTrace();
        }
    }
}

Cheers!

1 голос
/ 14 января 2012

У меня была такая же проблема со встроенной БД, и, наконец, я ее очистил. Это вам точно поможет aparna-java.blogspot.com пожалуйста, отметьте это

1 голос
/ 15 февраля 2011

Имена таблиц чувствительны к регистру.Убедитесь, что созданная вами таблица действительно называется «REST» со всеми заглавными буквами или «Rest» или «rest».

0 голосов
/ 17 октября 2017

Я сделал следующее исправление, используя Eclipse:

(В перспективе базы данных: Окно> Перспектива> Открыть перспективу> Прочее> Разработка базы данных), щелкнув правой кнопкой мыши папку Соединение с базой данных> Создать> Derby:

Необходимо убедиться, что папка «Расположение базы данных» находится в том же месте, что и местоположение Derby.jar, указанное в («Изменить определение драйвера»> «Список JAR»).Как показано на снимке ниже:

Расположение дерби-кувшина

Расположение дерби-базы данных

Надеюсь, это поможет.

0 голосов
/ 04 августа 2016

Простой пример @ http://javabyranjith.blogspot.in/2016/08/apache-derby-with-java-example.html. Надеюсь, это поможет

0 голосов
/ 16 февраля 2011

Возможно, вам будет легче освоить дерби, начав с уроков по дерби: http://db.apache.org/derby/docs/10.7/getstart/cgstutorialintro.html

...