Параметр «статус» не найден. Доступные параметры: [0, 1, param1, param2] в Mybatis и Spring. ⇐ JAVA
Параметр «статус» не найден. Доступные параметры: [0, 1, param1, param2] в Mybatis и Spring.
Я использую mybatis и Spring, я хочу сравнить две даты и время, а затем обновить данные в базу данных
мой сервис и картограф:
@Override public void InsertOrUpdateStatusOfSendSMS (BigDecimal smsId, String status) { smsBrandingListMapper.insertOrUpdateStatusOfSendSMS(smsId, status); } это мой код (класс контроллера):
smsBrandingList = smsService.selectListSMSBranding(params); DateTimeFormatter dtFormatter = DateTimeFormatter.ofPattern("дд-ММ-гггг ЧЧ:мм"); for(int i=0; i< smsBrandingList.size(); i++) { System.out.println(smsBrandingList.get(i).get("по расписанию")); System.out.println(smsBrandingList.get(i).get("smsId")); BigDecimal smsId = (BigDecimal) smsBrandingList.get(i).get("smsId"); System.out.println(smsId); String smsSendStatusScheduled = (String) smsBrandingList.get(i).get("запланировано"); LocalDateTime localDateTime = LocalDateTime.parse(smsSendStatusScheduled, dtFormatter) ; // получаем текущее время сейчас LocalDateTime currentTimeNow = LocalDateTime.now(); System.out.println(localDateTime); System.out.println(currentTimeNow); если (currentTimeNow.isEqual(localDateTime)) { Строка статуса = «Отправлено»; smsService.insertOrUpdateStatusOfSendSMS(smsId, status); logger.info("Сравнить с данными и датой -> {}" + SMSConstant.STATUS_SENT); } иначе, если (currentTimeNow.isAfter(localDateTime)) { Строка статуса = «Отправлено»; smsService.insertOrUpdateStatusOfSendSMS(smsId, status); logger.info("Сравнить с данными и датой -> {}" + SMSConstant.STATUS_SENT); } иначе, если (currentTimeNow.isBefore(localDateTime)) { Строка status = «Ожидание»; smsService.insertOrUpdateStatusOfSendSMS(smsId, status); logger.info("Сравнить с данными и датой -> {}" + SMSConstant.STATUS_WAITING); } еще { Строка статуса = «Неизвестно»; logger.error("Сравнить с данными и датой -> {3}" + статус); выдать новое IllegalStateException("Сравнить с данными и датой -> {3}" + SMSConstant.STATUS_UNKNOWN); } это мой запрос:
ОБНОВЛЕНИЕ MSC0053M УСТАНОВИТЬ СТАТУС = #{статус} ГДЕ SMS_ID = #{smsId} Когда я сравниваю дату и время, на основе условия if, он обновляет status по smsId, но я запускаю и отлаживаю это, происходит следующее исключение: 2021-08-03 18:09:37,707 ОШИБКА [com.coway.trust.config.handler.GlobalExceptionHandler] [defaultException]ex: {} org.mybatis.spring.MyBatisSystemException: вложенное исключение — org.apache.ibatis.binding.BindingException: параметр «статус» не найден. Доступные параметры: [0, 1, параметр1, параметр2] в org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:76) ~[mybatis-spring-1.2.3.jar:1.2.3] в org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:399) ~[mybatis-spring-1.2.3.jar:1.2.3] в com.myservice.SMSBrandingListServiceImpl.insertOrUpdateStatusOfSendSMS(SMSBrandingListServiceImpl.java:90) ~[classes/:?] в sun.reflect.NativeMethodAccessorImpl.invoke0 (собственный метод) ~[?:1.8.0_144] в com.myservice.SMSBrandingListServiceImpl.insertOrUpdateStatusOfSendSMS(SMSBrandingListServiceImpl.java:90) ~[classes/:?] в sun.reflect.NativeMethodAccessorImpl.invoke0 (собственный метод) ~[?:1.8.0_144] Как решить проблему?
Я использую mybatis и Spring, я хочу сравнить две даты и время, а затем обновить данные в базу данных
мой сервис и картограф:
@Override public void InsertOrUpdateStatusOfSendSMS (BigDecimal smsId, String status) { smsBrandingListMapper.insertOrUpdateStatusOfSendSMS(smsId, status); } это мой код (класс контроллера):
smsBrandingList = smsService.selectListSMSBranding(params); DateTimeFormatter dtFormatter = DateTimeFormatter.ofPattern("дд-ММ-гггг ЧЧ:мм"); for(int i=0; i< smsBrandingList.size(); i++) { System.out.println(smsBrandingList.get(i).get("по расписанию")); System.out.println(smsBrandingList.get(i).get("smsId")); BigDecimal smsId = (BigDecimal) smsBrandingList.get(i).get("smsId"); System.out.println(smsId); String smsSendStatusScheduled = (String) smsBrandingList.get(i).get("запланировано"); LocalDateTime localDateTime = LocalDateTime.parse(smsSendStatusScheduled, dtFormatter) ; // получаем текущее время сейчас LocalDateTime currentTimeNow = LocalDateTime.now(); System.out.println(localDateTime); System.out.println(currentTimeNow); если (currentTimeNow.isEqual(localDateTime)) { Строка статуса = «Отправлено»; smsService.insertOrUpdateStatusOfSendSMS(smsId, status); logger.info("Сравнить с данными и датой -> {}" + SMSConstant.STATUS_SENT); } иначе, если (currentTimeNow.isAfter(localDateTime)) { Строка статуса = «Отправлено»; smsService.insertOrUpdateStatusOfSendSMS(smsId, status); logger.info("Сравнить с данными и датой -> {}" + SMSConstant.STATUS_SENT); } иначе, если (currentTimeNow.isBefore(localDateTime)) { Строка status = «Ожидание»; smsService.insertOrUpdateStatusOfSendSMS(smsId, status); logger.info("Сравнить с данными и датой -> {}" + SMSConstant.STATUS_WAITING); } еще { Строка статуса = «Неизвестно»; logger.error("Сравнить с данными и датой -> {3}" + статус); выдать новое IllegalStateException("Сравнить с данными и датой -> {3}" + SMSConstant.STATUS_UNKNOWN); } это мой запрос:
ОБНОВЛЕНИЕ MSC0053M УСТАНОВИТЬ СТАТУС = #{статус} ГДЕ SMS_ID = #{smsId} Когда я сравниваю дату и время, на основе условия if, он обновляет status по smsId, но я запускаю и отлаживаю это, происходит следующее исключение: 2021-08-03 18:09:37,707 ОШИБКА [com.coway.trust.config.handler.GlobalExceptionHandler] [defaultException]ex: {} org.mybatis.spring.MyBatisSystemException: вложенное исключение — org.apache.ibatis.binding.BindingException: параметр «статус» не найден. Доступные параметры: [0, 1, параметр1, параметр2] в org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:76) ~[mybatis-spring-1.2.3.jar:1.2.3] в org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:399) ~[mybatis-spring-1.2.3.jar:1.2.3] в com.myservice.SMSBrandingListServiceImpl.insertOrUpdateStatusOfSendSMS(SMSBrandingListServiceImpl.java:90) ~[classes/:?] в sun.reflect.NativeMethodAccessorImpl.invoke0 (собственный метод) ~[?:1.8.0_144] в com.myservice.SMSBrandingListServiceImpl.insertOrUpdateStatusOfSendSMS(SMSBrandingListServiceImpl.java:90) ~[classes/:?] в sun.reflect.NativeMethodAccessorImpl.invoke0 (собственный метод) ~[?:1.8.0_144] Как решить проблему?
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение