1. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

Помогите Ошибка SQLite

Тема в разделе "Разработка плагинов для новичков", создана пользователем Sergeo, 14 мар 2021.

Статус темы:
Закрыта.
  1. Автор темы
    Sergeo

    Sergeo Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Solomka
    Всем привет! У меня ошибка в синтаксисе, но не пойму в чем проблема (жалуется на ошибку рядом с ,)

    Если кто-то знает в чем проблема, то подскажите ошибку синтаксиса(Сам понять никак не могу)

    Проблемные строки 176:
    Код:
                ResultSet resultSet = statement.executeQuery(String.format("SELECT 'fraction', 'UUID' FROM player_data WHERE 'fraction'='%s', 'UUID'='%s'", fraction, id));
    94:
    Код:
                ResultSet resultSet = statement.executeQuery(String.format("SELECT 'isHaveMedcard', 'UUID' FROM player_data WHERE 'isHaveMedcard'='%s', 'id'='%s'", isHaveMedcard, id));
    281:
    Код:
                ResultSet resultSet = statement.executeQuery(String.format("SELECT 'isHaveDiplom', 'UUID' FROM player_data WHERE 'isHaveDiplom'='%s', 'UUID'='%s'", isHaveDiplom, id));
    197:
    Код:
    ResultSet resultSet = statement.executeQuery(String.format("SELECT 'BlackList', 'fraction', 'UUID' FROM player_data WHERE 'BlackList'='%s', 'UUID'='%s', 'fraction'='%s'", BlackList, fraction, id));
    Ошибка:
    Код:
    org.sqlite.SQLiteException: [SQLITE_ERROR] SQL error or missing database (near ",": syntax error)




    Код(много):

    Код:
       
       public static Connection getConnection() throws SQLException {
            if (user != null)
                return DriverManager.getConnection(url, user, password);
            else return DriverManager.getConnection(url);
        }
    
        public static void saveIsHaveMedcard(boolean isHaveMedcard, UUID id){
            List<Data> log = new ArrayList<>();
            try {
    
                Connection c = getConnection();
                Statement statement = c.createStatement();
    
                for(Data dat : log){
                    statement.executeUpdate(String.format("INSERT player_data ('isHaveMedcard', 'UUID') VALUES (%d, '%s', '%s');",
                            isHaveMedcard, id, dat.isHaveMedcard(), dat.getUuid()));
                }
    
                statement.close();
    
                c.close();
    
            } catch (Exception e){
                e.printStackTrace();
            }
        }
    
        public static boolean getIsHaveMedcard(boolean isHaveMedcard, UUID id){
            try {
    
                Connection c = getConnection();
                Statement statement = c.createStatement();
    
                ResultSet resultSet = statement.executeQuery(String.format("SELECT 'isHaveMedcard', 'UUID' FROM player_data WHERE 'isHaveMedcard'='%s', 'id'='%s'", isHaveMedcard, id));
    
                isHaveMedcard = Data.data_5(resultSet.getBoolean("isHaveMedcard"));
                Data.data_3((UUID) resultSet.getObject("UUID"));
    
    
                statement.close();
                c.close();
    
            } catch (Exception e){
                e.printStackTrace();
            }
            return isHaveMedcard;
        }
    
        public static void saveDat(List<Data> log){
            try {
    
                Connection c = getConnection();
                Statement statement = c.createStatement();
    
                for(Data dat : log) {
                    statement.executeUpdate(String.format("INSERT player_data ('UUID', 'fraction', 'rank', 'BlackList', 'warning', 'isHaveDimplom') VALUES (%d, '%s', '%s', '%s', '%s', '%s', '%s');",
                            dat.getUuid(), dat.getFraction(), dat.getRank(), dat.isBlackList(), dat.getWarning(), dat.isHaveDiploma()));
                }
                statement.close();
                c.close();
    
    
            } catch (Exception e){
                e.printStackTrace();
            }
        }
    
        public static void saveDatRank(int rank, UUID id){
            List<Data> log = new ArrayList<>();
            try {
    
                Connection c = getConnection();
                Statement statement = c.createStatement();
    
                for(Data dat : log){
                    statement.executeUpdate(String.format("INSERT player_data ('rank') VALUES (%d, '%s', '%s');", rank, id,
                            dat.getRank(), dat.getUuid()));
                }
    
                statement.close();
                c.close();
    
    
            } catch (Exception e){
                e.printStackTrace();
            }
        }
    
        public static List<Data> getDat(UUID uuid, int fraction, double rank, int warning){
            List<Data> logs = new ArrayList<>();
            try {
    
                Connection c = getConnection();
                Statement statement = c.createStatement();
    
                ResultSet resultSet = statement.executeQuery(String.format("SELECT 'UUID', 'fraction', 'rank', 'warning' FROM player_data WHERE 'UUID'='%s', 'fraction'='%s', 'rank'='%s', 'warning'='%s'", uuid, rank, fraction, warning));
    
                while (resultSet.next()){
                    logs.add(new Data(resultSet.getInt("fraction"), (UUID) resultSet.getObject("UUID"), (int) resultSet.getDouble("rank"), resultSet.getBoolean("isHaveMedcard"), resultSet.getBoolean("BlackList"), resultSet.getInt("warning"), resultSet.getBoolean("isHaveDiplom")));
                }
    
                statement.close();
                c.close();
    
            } catch (Exception e){
                e.printStackTrace();
            }
            return logs;
        }
    
        public static boolean getDatFraction(int fraction, UUID id){
            try {
                Connection c = getConnection();
                Statement statement = c.createStatement();
    
                ResultSet resultSet = statement.executeQuery(String.format("SELECT 'fraction', 'UUID' FROM player_data WHERE 'fraction'='%s', 'UUID'='%s'", fraction, id));
    
                while (resultSet.next()){
                    Data.data_2(resultSet.getInt("fraction"));
                    Data.data_3((UUID) resultSet.getObject("UUID"));
                }
    
                statement.close();
                c.close();
    
            } catch (Exception e){
                e.printStackTrace();
            }
            return true;
        }
    
        public static boolean getBlackList(boolean BlackList, int fraction, UUID id){
            try {
                Connection c = getConnection();
                Statement statement = c.createStatement();
    
                ResultSet resultSet = statement.executeQuery(String.format("SELECT 'BlackList', 'fraction', 'UUID' FROM player_data WHERE 'BlackList'='%s', 'UUID'='%s', 'fraction'='%s'", BlackList, fraction, id));
    
                while (resultSet.next()){
                    BlackList = Data.data_6(resultSet.getBoolean("BlackList"));
                    Data.data_2(resultSet.getInt("fraction"));
                    Data.data_3((UUID) resultSet.getObject("UUID"));
                }
    
                statement.close();
                c.close();
    
            } catch (Exception e){
                e.printStackTrace();
            }
            return BlackList;
        }
    
        public static boolean saveBlackList(boolean BlackList, int fraction, UUID id) {
            List<Data> log = new ArrayList<>();
            try {
                Connection c = getConnection();
                Statement statement = c.createStatement();
    
                for (Data dat : log) {
                    statement.executeUpdate(String.format("INSERT player_data ('BlackList', 'fraction', 'UUID') VALUES (%d, '%s', '%s', '%s');", BlackList, fraction, id,
                            dat.getUuid(id), dat.getFraction(), dat.getBlackList()));
                }
    
                statement.close();
                c.close();
    
    
            } catch (Exception e) {
                e.printStackTrace();
            }
            return BlackList;
        }
    
        public static int saveWarning(int warning, int fraction, UUID id) {
            List<Data> log = new ArrayList<>();
            try {
                Connection c = getConnection();
                Statement statement = c.createStatement();
    
                for (Data dat : log) {
                    statement.executeUpdate(String.format("INSERT player_data ('warning', 'fraction', 'UUID') VALUES (%d, '%s', '%s', '%s');", warning, fraction, id,
                            dat.getUuid(id), dat.getFraction(), dat.getWarning()));
                }
    
                statement.close();
                c.close();
    
    
            } catch (Exception e) {
                e.printStackTrace();
            }
            return warning;
        }
    
        public static boolean saveHaveDimplom(boolean isHaveDiplom, UUID id) {
            List<Data> log = new ArrayList<>();
            try {
                Connection c = getConnection();
                Statement statement = c.createStatement();
    
                for (Data dat : log) {
                    statement.executeUpdate(String.format("INSERT player_data ('isHaveDiplom', 'UUID') VALUES (%d, '%s', '%s');", isHaveDiplom, id,
                            dat.getUuid(), dat.isHaveDiploma()));
                }
    
                statement.close();
                c.close();
    
    
            } catch (Exception e) {
                e.printStackTrace();
            }
            return isHaveDiplom;
        }
    
        public static boolean getDiplom(boolean isHaveDiplom, UUID id){
            try {
                Connection c = getConnection();
                Statement statement = c.createStatement();
    
                ResultSet resultSet = statement.executeQuery(String.format("SELECT 'isHaveDiplom', 'UUID' FROM player_data WHERE 'isHaveDiplom'='%s', 'UUID'='%s'", isHaveDiplom, id));
    
                while (resultSet.next()){
    
                    isHaveDiplom = Data.data_8(resultSet.getBoolean("isHaveDiplom"));
                    Data.data_3((UUID) resultSet.getObject("UUID"));
                }
    
                statement.close();
                c.close();
    
            } catch (Exception e){
                e.printStackTrace();
            }
            return isHaveDiplom;
        }
    
        public static boolean getWarning(int warning, UUID id, int fraction){
            try {
                Connection c = getConnection();
                Statement statement = c.createStatement();
    
                ResultSet resultSet = statement.executeQuery(String.format("SELECT 'warning', 'UUID', 'fraction' FROM player_data WHERE 'rank'='%s', 'UUID'='%s', 'fraction'='%s'", warning, id, fraction));
    
                while (resultSet.next()){
    
                    Data.data_7(resultSet.getInt("warning"));
                    Data.data_2(resultSet.getInt("fraction"));
                    Data.data_3((UUID) resultSet.getObject("UUID"));
                }
    
                statement.close();
                c.close();
    
            } catch (Exception e){
                e.printStackTrace();
            }
            return true;
        }
    
    
        public static boolean getDataRank(double rank, int fraction, UUID id){
            try {
                Connection c = getConnection();
                Statement statement = c.createStatement();
    
                ResultSet resultSet = statement.executeQuery(String.format("SELECT 'rank', 'fraction', 'UUID' FROM player_data WHERE 'rank'='%s', 'fraction'='%s', 'UUID'='%s'", rank, fraction, id));
    
                while (resultSet.next()){
    
                    Data.data_4((int) resultSet.getDouble("rank"));
                    Data.data_2(resultSet.getInt("fraction"));
                    Data.data_3((UUID) resultSet.getObject("UUID"));
                }
    
                statement.close();
                c.close();
    
            } catch (Exception e){
                e.printStackTrace();
            }
            return true;
        }
    
        public static int getIntRank(int rank, int fraction, UUID id){
            try {
                Connection c = getConnection();
                Statement statement = c.createStatement();
    
                ResultSet resultSet = statement.executeQuery(String.format("SELECT 'rank', 'fraction', 'UUID' FROM player_data WHERE 'rank'='%s', 'fraction'='%s' 'UUID'='%s'", rank, fraction, id));
    
                while (resultSet.next()){
    
                    rank = Data.data_4((int) resultSet.getDouble("rank"));
                    Data.data_2(resultSet.getInt("fraction"));
                    Data.data_3((UUID) resultSet.getObject("UUID"));
                }
    
                statement.close();
                c.close();
    
            } catch (Exception e){
                e.printStackTrace();
            }
            return rank;
        }
    
        // Удаление игрока из бд
        public static UUID removePlayer(UUID uuid){
    
            try {
    
                Connection c = getConnection();
                Statement statement = c.createStatement();
    
                statement.executeUpdate(String.format("DELETE FROM player_data WHERE 'UUID'='%s'", uuid));
    
                statement.close();
                c.close();
    
            } catch (Exception e){
                e.printStackTrace();
            }
            return uuid;
        }
    
        // Удаление игрока из ранга
        public static int removeRank(int rank, UUID id){
            int i = 0;
            try {
    
                Connection c = getConnection();
                Statement statement = c.createStatement();
    
                i = statement.executeUpdate(String.format("DELETE FROM player_data WHERE 'rank'='%s', 'UUID'='%s'", rank, id));
    
                statement.close();
                c.close();
    
            } catch (Exception e){
                e.printStackTrace();
            }
            return i;
        }
    
        // Очистка
        public static int clear(){
            int i = 0;
            try {
    
                Connection c = getConnection();
                Statement statement = c.createStatement();
    
                i = statement.executeUpdate("DELETE FROM player_data;");
    
                statement.close();
    
                c.close();
    
            } catch (Exception e){
                e.printStackTrace();
            }
            return i;
        }
    
        public static double getRank(UUID id){
            double i = 0;
            try {
    
                Connection c = getConnection();
                Statement statement = c.createStatement();
    
                i = statement.executeUpdate(String.format("SELECT 'rank', 'UUID' FROM player_data WHERE 'rank'='%s', 'UUID'='%s'", id));
    
                statement.close();
    
                c.close();
    
            } catch (Exception e){
                e.printStackTrace();
            }
            return i;
        }
    
        public static int getFraction(UUID id){
            int i = 0;
            try {
    
                Connection c = getConnection();
                Statement statement = c.createStatement();
    
                i = statement.executeUpdate(String.format("SELECT 'fraction', 'UUID' FROM player_data WHERE 'fraction'='%s', 'UUID'='%s'", id));
    
                statement.close();
    
                c.close();
    
            } catch (Exception e){
                e.printStackTrace();
            }
            return i;
        }
    
        public static int getWarning(UUID id){
            int i = 0;
            try {
    
                Connection c = getConnection();
                Statement statement = c.createStatement();
    
                i = statement.executeUpdate(String.format("SELECT 'warning', 'UUID' FROM player_data WHERE 'warning'='%s', 'UUID'='%s'", id));
    
                statement.close();
    
                c.close();
    
            } catch (Exception e){
                e.printStackTrace();
            }
            return i;
        }
    
    }
    
    [/SPOILER]
    
    
     
    Последнее редактирование: 14 мар 2021
  2. Quinn

    Quinn Активный участник Пользователь

    Баллы:
    66
    Код:
    WHERE column = 'value' and column1 = 'value1'
    NOT

    Код:
    WHERE column = 'value', column1 = 'value1'
     
  3. Автор темы
    Sergeo

    Sergeo Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Solomka
    Попробую! Спасибо за ответ
     
  4. Автор темы
    Sergeo

    Sergeo Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Solomka
    И вопрос(Насчет UUID)

    Код:
    statement.executeUpdate("CREATE TABLE IF NOT EXISTS player_data ('UUID' INT, 'rank' DOUBLE, 'fraction' INT, 'isHaveMedcard' BOOLEAN, 'BlackList' BOOLEAN);");
    UUID в данном случае object? Или все же int? Насколько я знаю uuid нет
     
  5. Luminate_

    Luminate_ Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Luminate_
    Меня вообще интересует почему UUID типа INT
     
  6. Quinn

    Quinn Активный участник Пользователь

    Баллы:
    66
    uuid может быть типа либо varchar, либо text
     
  7. Автор темы
    Sergeo

    Sergeo Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Solomka
    Код:
    [12:50:21 WARN]: java.sql.SQLException: ResultSet closed
    Теперь с бд все окей, но пишет это

    При взаимодействии с предметом в инвентаре, который отвечает за вход в фракцию(Он помещает, но выдает ошибку, а следовательно не может проверить наличие мед.карты или находится игрок в чс фракции)

    (MySQLDataBase.java:118)

    118: data_5(resultSet.getBoolean("isHaveMedcard"));


    Код:
        public static boolean getIsHaveMedcard(boolean isHaveMedcard, UUID id){
            try {
    
                Connection c = getConnection();
                Statement statement = c.createStatement();
    
                ResultSet resultSet = statement.executeQuery(String.format("SELECT 'isHaveMedcard', 'UUID' FROM player_data WHERE isHaveMedcard ='%s' and UUID ='%s'", isHaveMedcard, id));
    
                data_5(resultSet.getBoolean("isHaveMedcard"));
                data_3((UUID) resultSet.getObject("UUID"));
    
                statement.close();
                c.close();
    
            } catch (Exception e){
                e.printStackTrace();
            }
            return isHaveMedcard;
        }
     
  8. Luminate_

    Luminate_ Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Luminate_
    после statement.close() закроется и resultset
     
Статус темы:
Закрыта.

Поделиться этой страницей