-2 / 0 / 2
Регистрация: 14.12.2013
Сообщений: 49

Java и mysql компилятор выдаёт ошибку "MySQLSyntaxErrorException"

11.02.2014, 01:55. Показов 6509. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
доброе время суток

пытаюсь создать базу данных, но получаю в ответ вот такое

Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'GENERATED ALWAYS AS IDENTITY(START WITH 1, INCREMENT BY 1),NAME VARCHAR(30),DEPT' at line 1
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
    at com.mysql.jdbc.Util.getInstance(Util.java:386)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1054)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4237)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4169)
    at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2617)
    at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2778)
    at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2828)
    at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1842)
    at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1764)
    at jdbc.Derby.main(Derby.java:24)

вот так выглядит мой класс

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
import java.sql.*;
 
public class DerbySelect {
 
    public static void main(String[] args) throws Exception {
        Class.forName("com.mysql.jdbc.Driver"); // ClientDriver");
//      Class.forName("org.apache.derby.jdbc.EmbeddedDriver"); // ClientDriver");
        Connection con = null;
        try {
 
//           con=DriverManager.getConnection("jdbc:derby://localhost:1527/ExampleDB;create=true");
            con = DriverManager
                    .getConnection("jdbc:mysql://localhost:3306/sakila?profileSQL=true"); //;create=true");
//          con = DriverManager
//                  .getConnection("jdbc:derby://localhost:1527/ExampleDB"); //;create=true");
            Statement stmt = con.createStatement();
            String sqlQuery = "Select ID,NAME,DEPT,SAL from EMP";
//          sqlQuery += " Where SAL >= 17000";
            ResultSet rs = stmt
                    .executeQuery(sqlQuery);
            
            System.out.println("ID\tNAME\tDEPT\tSAL ");
            System.out.println("--\t------\t-----\t-------");
//          stmt.executeUpdate("INSERT INTO EMP (NAME,DEPT,SAL) VALUES ('Lena','car',98989)");
            
//          PreparedStatement pstmt = con.prepareStatement("INSERT INTO EMP (NAME,DEPT,SAL) VALUES (?,?,?)");
//          pstmt.setString(1, "Fima");
//          pstmt.setString(2, "sal");
//          pstmt.setInt(3, 40000);
//          
//          pstmt.execute();
            
            while (rs.next()) {
                System.out.println(rs.getInt("ID") + "\t"
                        + rs.getString("NAME") + "\t" + rs.getString("DEPT")
                        + "\t" + rs.getDouble("SAL"));
            }
 
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } finally {
            con.close();
        }
 
    }
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.02.2014, 01:55
Ответы с готовыми решениями:

javax.servlet.ServletException: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'mysql.message' doesn't exist
Добавлено через 1 час 53 минуты Подключил драйвера, создал таблицы, отредактировал код: <%@page...

Найдите ошибку, составила программу,ошибку компилятор не выдает, но корректно задание не выполняется
Заменить первый минимальный четный элемент находящийся под главной диагональю в матрице , включая границы, на первый максимальный...

Почему компилятор выдает ошибку при объявлении объекта t1 конструктор пишет ошибку там где garo?
#include <iostream> #include "Windows.h" using namespace std; #include <cstring> class TwoDShape { double width; double...

10
 Аватар для _Den_
161 / 157 / 29
Регистрация: 21.09.2013
Сообщений: 487
Записей в блоге: 2
11.02.2014, 03:19
Цитата Сообщение от FimaIL Посмотреть сообщение
You have an error in your SQL syntax
Какой-то из запросов к БД не верен, смотрите как правильно писать запросы и сравните со своими.
0
-2 / 0 / 2
Регистрация: 14.12.2013
Сообщений: 49
11.02.2014, 10:18  [ТС]
То что какой то из запросов неверен , я и сам вижу..... Вопрос какой из них?
Фишка в том что если я запускаю этот же код только на Дерби , то все отлично работает....
Помогите плиз
0
 Аватар для Skipy
2000 / 1427 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
11.02.2014, 11:09
Цитата Сообщение от FimaIL Посмотреть сообщение
То что какой то из запросов неверен , я и сам вижу..... Вопрос какой из них?
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'GENERATED ALWAYS AS IDENTITY(START WITH 1, INCREMENT BY 1),NAME VARCHAR(30),DEPT'
Судя по всему ему не нравится GENERATED ALWAYS AS IDENTITY(START WITH 1, INCREMENT BY 1)
0
-2 / 0 / 2
Регистрация: 14.12.2013
Сообщений: 49
11.02.2014, 14:11  [ТС]
Получается, что у каждого SQL сервера , свой синтаксис?
Или я не так понял
0
 Аватар для _Den_
161 / 157 / 29
Регистрация: 21.09.2013
Сообщений: 487
Записей в блоге: 2
11.02.2014, 14:12
Вы используете MySQL? Видимо да. Что вы хотели в результате этого запроса
SQL
1
GENERATED ALWAYS AS IDENTITY(START WITH 1, INCREMENT BY 1) ...
Ваш класс это весь код программы?
0
-2 / 0 / 2
Регистрация: 14.12.2013
Сообщений: 49
11.02.2014, 14:16  [ТС]
О о.... Только сейчас увидел , что не тот класс вам показываю....
Буду возле компа скину требуемый класс
0
 Аватар для _Den_
161 / 157 / 29
Регистрация: 21.09.2013
Сообщений: 487
Записей в блоге: 2
11.02.2014, 14:17
Цитата Сообщение от FimaIL Посмотреть сообщение
О о.... Только сейчас увидел , что не тот класс вам показываю....
Буду возле компа скину требуемый класс
Ну вот, хоть что то
0
 Аватар для Skipy
2000 / 1427 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
11.02.2014, 14:18
Цитата Сообщение от FimaIL Посмотреть сообщение
Получается, что у каждого SQL сервера , свой синтаксис?
Да! У каждого сервера свой. Теоретически есть стандарты, на практике даже ANSI SQL 92 не всеми серверами в полном объеме поддерживается. Более того, есть и диалекты - Oracle SQL для 9i отличается от 11g.
0
-2 / 0 / 2
Регистрация: 14.12.2013
Сообщений: 49
12.02.2014, 11:18  [ТС]
Теперь все понятно, если возникнут вопросы, отпишусь

Добавлено через 10 минут
а вот и долгожданный класс

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
import java.sql.*;
 
public class Derby {
 
    public static void main(String[] args) throws Exception {
        Class.forName("com.mysql.jdbc.Driver");
//      Class.forName("org.apache.derby.jdbc.ClientDriver");
        Connection con = null;
        try {
 
            con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test");
//          con = DriverManager.getConnection("jdbc:derby://localhost:1527/ExampleDB;create=true;");
            Statement stmt = con.createStatement();
 
            final String CREATE_TABLE_SQL = "CREATE table EMP ("
                    + "ID INTEGER NOT NULL PRIMARY KEY GENERATED ALWAYS AS IDENTITY"
                    + "(START WITH 1, INCREMENT BY 1)," 
                    + "NAME VARCHAR(30),"
                    + "DEPT VARCHAR(30)," 
                    + "SAL DOUBLE)";
 
             stmt.executeUpdate(CREATE_TABLE_SQL);
 
            String SQL = "INSERT INTO EMP (NAME,DEPT,SAL) VALUES ('David','SALES',15000.00)";
            stmt.executeUpdate(SQL);
 
            SQL = "INSERT INTO EMP (NAME,DEPT,SAL) VALUES ('Shelli','TAXES',20000.00)";
            stmt.executeUpdate(SQL);
 
            SQL = "INSERT INTO EMP (NAME,DEPT,SAL) VALUES ('Dan','SALES',17000.00)";
            stmt.executeUpdate(SQL);
 
            
            
            
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            con.close();
        }
 
    }// main
 
}
Добавлено через 7 минут
что то не понимаю как создать TABLE_SQL
намекните, помогите

Добавлено через 20 часов 37 минут
Сделал проще, убрал из кода create table и создал тейбл в бенче, все работает....
Но остается в силе вопрос , где ошибка в синтаксисе?
Может кто то знает и поможет?
Сейчас нет времени гуглить, а проблема весь мозг проела.

Заранее спасибо
0
 Аватар для _Den_
161 / 157 / 29
Регистрация: 21.09.2013
Сообщений: 487
Записей в блоге: 2
12.02.2014, 13:29
Цитата Сообщение от FimaIL Посмотреть сообщение
ID INTEGER NOT NULL PRIMARY KEY GENERATED ALWAYS AS IDENTITY" + "(START WITH 1, INCREMENT BY 1)
Мне кажется MySQL не принимает такой синтаксис автоинкремента, вот варианты для нескольких серверов
http://www.w3schools.com/sql/sql_autoincrement.asp
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.02.2014, 13:29
Помогаю со студенческими работами здесь

Компилятор выдаёт ошибку.
Program z1; var n:integer; begin Writeln('Архитектор Исаакиевского собора: 1.Доменико Трезин. ...

Компилятор выдает ошибку
Работаю в Code::Blocs. Компилятор выдает ошибку: "LAB 2 - Debug" uses an invalid compiler. Probably the toolchain path within the...

Выдаёт ошибку компилятор
import asyncio import time as time_d from datetime import datetime from pprint import pprint import gspread as gspread import...

Компилятор выдает ошибку
#include "stdafx.h" #include"cstdlib" #include"iostream" #include"vector" #include "string" #include "algorithm" #include...

компилятор выдает ошибку
после запуска программы компилятор выдает окно с сообщением: "необработанное исключение в "0x77e015de" в "4.exe":...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

Новые блоги и статьи
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru