java.sql.SQLException: значение не указано для параметра 4 - PullRequest
0 голосов
/ 02 мая 2019

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

public static void add_question(Question question) {
        Connection cnx;
        try {

            cnx = Connect.getConnection();
            cnx.setAutoCommit(false);

            String req = "insert into question(title, contenu, proposition, reponse) values(?,?,?,?)";

            PreparedStatement st = cnx.prepareStatement(req);
            st.setString(1, question.getTitle());
            st.setString(2, question.getContenu());

            for (Proposition prop : question.getListProp()) {
                st.setString(3, prop.getContenu());

                st.addBatch(); 
            }

            for (Correct corr : question.getReponse()) {
                st.setString(4, corr.getCorrect());

                st.addBatch();
            }

            st.executeBatch();
            cnx.commit();
}

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

Ответы [ 2 ]

0 голосов
/ 03 мая 2019

Полагаю, вы можете сделать следующее:

public static void add_question(Question question) {
        Connection cnx;
        try {

            cnx = Connect.getConnection();
            cnx.setAutoCommit(false);

            String req = "insert into question(title, contenu, proposition, reponse) values(?,?,?,?)";

            PreparedStatement st = cnx.prepareStatement(req);
            st.setString(1, question.getTitle());
            st.setString(2, question.getContenu());

            for (Proposition prop : question.getListProp()) {
                st.setString(3, prop.getContenu());
            }

            for (Correct corr : question.getReponse()) {
                st.setString(4, corr.getCorrect());
            }
            st.addBatch(); 
            st.executeBatch();
            cnx.commit();
}
0 голосов
/ 02 мая 2019

Когда выполняется st.addBatch(), параметры ALL должны быть уже установлены.

Это не так в вашем коде, поскольку параметр # 4 еще не установлен в первом st.addBatch(), когда вы устанавливаете [несколько] параметров # 3.Вы должны сделать эти петли прямыми.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...