2013-11-26 2 views
-1

Я пытаюсь выполнить следующий методJava SQL Update заявление

String sqlQuery = "UPDATE ACCOUNTS" 
        + " SET LAST_LOGIN_DATE=LOGIN_DATE," 
        + " LOGIN_DATE=SYSTIMESTAMP" 
        + " WHERE CUSTOMER_ID=? AND USER_ID=?"; 

     logger.debug("[{}] sqlQuery={}", methodName, sqlQuery); 

     String connectionName = properties.getProperty(JNDI_NAME); 
     Connection connection = null; 
     PreparedStatement pstmt = null; 

      connection = getJNDIConnection(connectionName); 
      pstmt = connection.prepareStatement(sqlQuery); 
      // set the input parameters 
      pstmt.setString(1, customerId); 
      pstmt.setString(2, userId); 

         if (pstmt.executeUpdate() > 0) 

Когда я добираюсь до последней строки это дает мне ложь и запрос не выполняется. Пожалуйста, помогите

+0

Возможно, нет такой учетной записи в этом аккаунте customerID и userID – mvieghofer

+0

Вы уверены, что запись существует? –

+0

Я попробовал запрос в консоли SQL - он отлично работает, я получаю нуждающегося пользователя. –

ответ

0

Я не знаком с Oracle, но вы уверены, что соединение JNDI подключается к одной и той же табличной/базы данных/схемы в качестве SQL консоль? This answer заставляет меня думать, может быть, вы как-то не подключаетесь к тому, что считаете себя.

+0

Действительно, это была проблема с подключением. Большое спасибо, всем –

-1

Попробуйте добавления table после update как update table ACCOUNTS

-1

От documentation:

Возвращает: либо (1) счетчика строк для SQL Data Manipulation Language (DML) заявления или (2) 0 для операторов SQL, которые ничего не возвращают.

Оператор обновления ничего не возвращает, поэтому executeUpdate вернет 0.

Смежные вопросы