Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.03.2023, 01:00   #1
Ильюха1
Пользователь
 
Регистрация: 04.04.2011
Сообщений: 92
По умолчанию Ява программу по внесению изменений в DB .Пишет ошибку по SQL .

Всем доброго времени суток . Пишу программу по добавлению данных в DB .
Код:
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.DriverManager;
import java.sql.Statement;

public class DB {

    private final String HOST = "localhost";
    private final String PORT = "3306";
    private final String DB_NAME = "java_bd";
    private final String LOGIN = "root";
    private final String PASS = "root";

    private Connection dbConn=null;

    private Connection getDbConnection() throws ClassNotFoundException,SQLException{
        String connStr="jdbc:mysql://"+HOST+":"+PORT+"/"+DB_NAME;
        Class.forName("com.mysql.cj.jdbc.Driver");

        dbConn=DriverManager.getConnection(connStr, LOGIN,PASS);
        return dbConn;

    }
    public void isConnected()throws ClassNotFoundException,SQLException {
        dbConn = getDbConnection();
        System.out.println(dbConn.isValid(1000));
    }
    public void createTable(String tableName)throws ClassNotFoundException,SQLException{
        String sql= "CREATE TABLE IF NOT EXISTS" + tableName
                +"(id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50), password WARCHAR(100))"
                +"ENGINE=MYISAM;";
        Statement statement = getDbConnection().createStatement();
        statement.executeUpdate(sql);




    }
}
MAIN


Код:
import java.sql.SQLException;

public class Main {
    public static void main(String[] args) {
       DB db=new DB();
        try {
            db.createTable("users");

        } catch (SQLException e) {
            e.printStackTrace();
        }catch (ClassNotFoundException e){
            e.printStackTrace();
        }

    }
}
Вот ошибка которую выдаёт редактор.

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 'EXISTSusers
(id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50), password WARCHA' at line 1

Последний раз редактировалось BDA; 14.03.2023 в 16:00.
Ильюха1 вне форума Ответить с цитированием
Старый 09.03.2023, 01:09   #2
macomics
Участник клуба
 
Регистрация: 17.04.2022
Сообщений: 1,833
По умолчанию

пробел после EXISTS поставьте

Код:
String sql= "CREATE TABLE IF NOT EXISTS " + tableName
+"(id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50), password WARCHAR(100))"
+"ENGINE=MYISAM;";
macomics вне форума Ответить с цитированием
Старый 10.03.2023, 11:15   #3
Ильюха1
Пользователь
 
Регистрация: 04.04.2011
Сообщений: 92
По умолчанию

Поставил, не помогло.
Ильюха1 вне форума Ответить с цитированием
Старый 10.03.2023, 11:23   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

и перед ENGINE тоже
p51x вне форума Ответить с цитированием
Старый 10.03.2023, 23:56   #5
Ильюха1
Пользователь
 
Регистрация: 04.04.2011
Сообщений: 92
По умолчанию

Парни прописал вот так не помогло
Код:
 import java.sql.Connection;
import java.sql.SQLException;
import java.sql.DriverManager;
import java.sql.Statement;

public class DB {

    private final String HOST = "localhost";
    private final String PORT = "3306";
    private final String DB_NAME = "java_bd";
    private final String LOGIN = "root";
    private final String PASS = "root";

    private Connection dbConn=null;


    private Connection getDbConnection() throws ClassNotFoundException,SQLException{
        String connStr="jdbc:mysql://"+HOST+":"+PORT+"/"+DB_NAME;
        Class.forName("com.mysql.cj.jdbc.Driver");

        dbConn=DriverManager.getConnection(connStr, LOGIN,PASS);
        return dbConn;

    }
    public void isConnected()throws ClassNotFoundException,SQLException {
        dbConn = getDbConnection();
        System.out.println(dbConn.isValid(1000));
    }
    public void createTable(String tableName)throws ClassNotFoundException,SQLException{
        String sql= " CREATE TABLE IF NOT EXISTS " + tableName
                +" (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50), password WARCHAR(100)) "
                +" ENGINE=MYISAM; ";
        Statement statement = getDbConnection().createStatement();
        statement.executeUpdate(sql);




    }
}

Последний раз редактировалось BDA; 14.03.2023 в 16:00.
Ильюха1 вне форума Ответить с цитированием
Старый 11.03.2023, 00:10   #6
macomics
Участник клуба
 
Регистрация: 17.04.2022
Сообщений: 1,833
По умолчанию

Код:
password VARCHAR(100)
macomics вне форума Ответить с цитированием
Старый 12.03.2023, 00:55   #7
Ильюха1
Пользователь
 
Регистрация: 04.04.2011
Сообщений: 92
По умолчанию

Спасибо большое . Всё пошло.
Ильюха1 вне форума Ответить с цитированием
Старый 14.03.2023, 15:48   #8
Ильюха1
Пользователь
 
Регистрация: 04.04.2011
Сообщений: 92
По умолчанию

Всем привет . Пробую достать из таблице список значений title , и редактор выдал мне похожую ошибку . Два раза проверил вроде всё верно .Не сочтите за наглость .
Код:
 import java.sql.*;

public class DB {

    private final String HOST = "localhost";
    private final String PORT = "3306";
    private final String DB_NAME = "java_bd";
    private final String LOGIN = "root";
    private final String PASS = "root";

    private Connection dbConn=null;

    private Connection getDbConnection() throws ClassNotFoundException,SQLException{
        String connStr="jdbc:mysql://"+HOST+":"+PORT+"/"+DB_NAME;
        Class.forName("com.mysql.cj.jdbc.Driver");

        dbConn=DriverManager.getConnection(connStr, LOGIN,PASS);
        return dbConn;

    }
    public void isConnected()throws ClassNotFoundException,SQLException {
        dbConn = getDbConnection();
        System.out.println(dbConn.isValid(1000));
    }
    public void createTable(String tableName)throws ClassNotFoundException,SQLException{
        String sql= " CREATE TABLE IF NOT EXISTS " + tableName
                +" (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50), password VARCHAR(100)) "
                +" ENGINE=MYISAM ";
        Statement statement = getDbConnection().createStatement();
        statement.executeUpdate(sql);

    }
    public void insertArticle (String title , String text , String date , String avtor) throws  SQLException,
            ClassNotFoundException{
        String sql = "INSERT INTO `articles`(title, text, date, avtor) VALUES (?, ?, ?, ?)";
        PreparedStatement prSt=getDbConnection().prepareStatement(sql);
        prSt.setString(1,title);
        prSt.setString(2,text);
        prSt.setString(3,date);
        prSt.setString(4, avtor);
        prSt. executeUpdate();

    }
    public void getArticles(String table) throws SQLException, ClassNotFoundException{
        String sql = "SELECT * FROM" + table;
        Statement statement = getDbConnection().createStatement();
        ResultSet res =statement.executeQuery(sql);
        while(res.next()){
            System.out.println(res.getString("title"));
        }
    }

}
MAIN

Код:
public class Main {
    public static void main(String[] args) {
       DB db=new DB();
        try {
            db.getArticles("articles");

        } catch (SQLException e) {
            e.printStackTrace();
        }catch (ClassNotFoundException e){
            e.printStackTrace();
        }

    }
}

Последний раз редактировалось BDA; 14.03.2023 в 16:00.
Ильюха1 вне форума Ответить с цитированием
Старый 14.03.2023, 15:57   #9
macomics
Участник клуба
 
Регистрация: 17.04.2022
Сообщений: 1,833
По умолчанию

пробел после FROM
Код:
String sql = "SELECT * FROM " + table;
macomics вне форума Ответить с цитированием
Старый 15.03.2023, 06:22   #10
Ильюха1
Пользователь
 
Регистрация: 04.04.2011
Сообщений: 92
По умолчанию

Спасибо , огромное .
Ильюха1 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Оптимизировать макрос в Excel по внесению изменений в файлы word Snekich Microsoft Office Excel 3 29.10.2019 09:38
[РЕШЕНО][C] Не могу добавить русский язык в программу, Пишет ошибку после того, как добавляю команду setlocale(LC_ALL, "Rus"); Помогите пожалуйста kocher18 Помощь студентам 2 16.12.2018 16:16
Код пишет ошибку Hattak Помощь студентам 3 16.05.2016 15:18
Запускаю программу в Windows и пишет ошибку. Cameron Помощь студентам 1 09.03.2012 11:58
Не срабатывает код, пишет ошибку T-dayne Общие вопросы Delphi 2 07.02.2010 12:28