MySQL - Java - Выполнить с заданным методом - Заявления - PullRequest
0 голосов
/ 27 апреля 2020

Аааа, я не знаю, как задать этот вопрос xD

У меня есть проект java, и я хочу предварительно определить операторы, такие как новая таблица БД, Вставка, Удаление и т. Д. c.

У меня есть предопределенные методы, но ResultSets закрываются, и я получаю сообщение об ошибке:

Operation not allowed after ResultSet closed

Я погуглил и обнаружил, что для каждого оператора разрешен только один ResultSet, и последний один закрыт, если другой открыт. Я получил так много, но как мне тогда определить метод?

RN У меня есть метод connect (), который подключается к базе данных и создает инструкцию для этого подключения. тогда у меня есть метод с именем newEntry (), который использует этот оператор. Но метод deleteEntry () также использует этот оператор. Как и 3 других метода.

Также некоторая справочная информация: из-за нескольких протекторов может случиться так, что один метод может вызываться несколько раз в одной указанной c точке.

Как решить эту проблему?

Ну ... спасибо за вашу помощь:)

РЕДАКТИРОВАТЬ:

public static ResultSet getEntrys(String fields, String name, String where) {
        String sql = "SELECT " + fields + " FROM " + name + " WHERE " + where;

        try {
            return resultStmt.executeQuery(sql);

        } catch (SQLException e) {
            System.out.println(e.getMessage());
        }

        return null;
    }

Затем в другом классе я называю этот метод следующим образом:

ResultSet set = MySQL.getEntrys("*", 
                    "Stats_Channels", 
                    "guild_ID = " + guild.getIdLong());


try {
    if(!set.next()) {

                //Do something

        MySQL.newEntry("Stats_Channels", 
                    "guild_ID, category_ID", 
                    guild.getIdLong() + ", " + category.getIdLong());

                //Do something

    }
    else {
        long categoryid = set.getLong("category_ID"); //-> Here it says ResultSet is Closed

                //Do something
                        }
                    }
} catch (SQLException e) {
    e.printStackTrace();
}
...