Обзор
Я создал контроллер, где я передаю Dao через autowire и выполняю запрос, используя jdbctemplate.
Контроллер вызывает метод, созданный в dao, для извлечения таблицы из базы данных.
Код
Контроллер
@Controller
public class ManagerRoles {
@Autowired
EmployeeDao dao;
@RequestMapping("getEmployeeSchedule/{empID}")
public ModelAndView employeeData(@PathVariable("empID")int empID,HttpServletRequest req,HttpServletResponse res,ModelMap model){
long millis=System.currentTimeMillis();
Date dateStart = new Date(millis);
Date dateFinal = new Date(dateStart.getYear(),dateStart.getMonth(),dateStart.getDate()+30);
System.out.println(dateStart);
System.out.println(dateFinal);
List<EmployeeHolidays> holidayList = dao.retrieveHolidays(dateStart, dateFinal);
if(holidayList!=null){
model.put("holidayList",holidayList);
}
System.out.println(holidayList);
return null;
}
}
DAO
public List<EmployeeHolidays> retrieveHolidays(Date startDate,Date endDate){
String sql = "SELECT * FROM HOLIDAYS WHERE DATE >= ? AND DATE <= ? ";
List<EmployeeHolidays> list = template.query(sql ,new RowMapper<EmployeeHolidays>(){
public EmployeeHolidays mapRow(ResultSet rs,int rownumber) throws SQLException{
EmployeeHolidays e = new EmployeeHolidays();
e.setDate(rs.getDate(1));
e.setReason(rs.getString(2));
e.setStatus(rs.getString(3));
return e;
}
});
return list;
}
Проблема в том, что при попытке запустить веб-приложение я получаю следующую ошибку при попытке получить данные таблицы.
Тип отчета об исключении
Ошибка обработки запроса сообщения; вложенное исключение
org.springframework.dao.ConcurrencyFailureException:
StatementCallback; SQL [ВЫБРАТЬ * ОТ ОТДЫХА, ГДЕ ДАТА> =? А ТАКЖЕ
ДАТА <=? ]; По крайней мере один параметр для текущего оператора
неинициализированным .; вложенное исключение
java.sql.SQLTransactionRollbackException: хотя бы один параметр для
текущий оператор неинициализирован. </p>
Описание Сервер обнаружил непредвиденное состояние, которое
помешал ему выполнить запрос.
Исключение
org.springframework.web.util.NestedServletException: Запрос
обработка не удалась; вложенное исключение
org.springframework.dao.ConcurrencyFailureException:
StatementCallback; SQL [ВЫБРАТЬ * ОТ ОТДЫХА, ГДЕ ДАТА> =? А ТАКЖЕ
ДАТА <=? ]; По крайней мере один параметр для текущего оператора
неинициализированным .; вложенное исключение
java.sql.SQLTransactionRollbackException: хотя бы один параметр для
текущий оператор неинициализирован.
org.springframework.web.servlet.FrameworkServlet.processRequest (FrameworkServlet.java:982)
org.springframework.web.servlet.FrameworkServlet.doGet (FrameworkServlet.java:861)
javax.servlet.http.HttpServlet.service (HttpServlet.java:622)
org.springframework.web.servlet.FrameworkServlet.service (FrameworkServlet.java:846)
javax.servlet.http.HttpServlet.service (HttpServlet.java:729)
org.apache.tomcat.websocket.server.WsFilter.doFilter (WsFilter.java:52) </p>
Я проверил параметры, которые я передаю, и у них обоих есть значения.
Кажется, я не могу найти источник проблемы. Кто-нибудь может мне помочь с этим?