Форум программистов, компьютерный форум, киберфорум
Java: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.87/30: Рейтинг темы: голосов - 30, средняя оценка - 4.87
-2 / 0 / 2
Регистрация: 14.12.2013
Сообщений: 49

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

11.02.2014, 01:55. Показов 6506. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Уведомление о неверно выбранном значении справочника
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 существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru