Unknown table при работе с таблицами в БД

133
31 июля 2021, 18:10

Среда разработки IntelijIdea, подключение к MySql. В БД таблица с названием books уже создана, не могу понять почему выдает такую ошибку!

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class Main {
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        String name = "root";
        String password = "B****";
        String connectionURL = "jdbc:mysql://localhost:3306/artur";
        Class.forName("com.mysql.cj.jdbc.Driver");
        try (Connection connection = DriverManager.getConnection(connectionURL, name, password);
             Statement statement = connection.createStatement()) {
                statement.executeUpdate("drop table books");
                statement.executeUpdate("create table Books(id MEDIUMINT NOT NULL AUTO_INCREMENT, name CHAR(30) NOT NULL, PRIMARY_KEY(id))");
                statement.executeUpdate("insert into Books(name) values('Inferno')");
                statement.executeUpdate("insert into Books set name = 'Solomon key'");
        }
    }
}
Exception in thread "main" java.sql.SQLSyntaxErrorException: Unknown table 'artur.books'
    at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
    at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
    at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
    at com.mysql.cj.jdbc.StatementImpl.executeUpdateInternal(StatementImpl.java:1335)
    at com.mysql.cj.jdbc.StatementImpl.executeLargeUpdate(StatementImpl.java:2108)
    at com.mysql.cj.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1245)
    at Main.main(Main.java:16)

И Maven и БД полностью исправны!

16 строка попадает на statement.executeUpdate("drop table books");

Answer 1

Все логично. MySQL - регистрозависимая СУБД. Поэтому наименования таблиц books и Books - не идентичны. Вы создали таблицу 'books', запустили свою программу, она удалила таблицу 'books' и создала таблицу 'Books'.

И всё. При следующем запуске вы получаете сообщение о том, что таблицы 'books' нет. И ее действительно нет. :)

READ ALSO
Интерпретатор скрипта парсера

Интерпретатор скрипта парсера

Необходимо разработать приложение для парсера HTML страницы

261
область видимости AngularJs

область видимости AngularJs

Всем доброго времени сутокУ меня вопрос могу ли я изменить свойства $scope обычного контроллера из вне фреймворка? я использую socket io и приходящие...

126