в этой системе пользователь увидит базовое представление расписания и может добавлять предметы, используя раскрывающийся список в каждом списке. Мне нужно сохранить все предметы в расписании в таблице sql. когда пользователь выбирает тему, используя раскрывающийся список, должна быть создана новая строка sql с указанием времени начала, времени окончания, дня и subject_code. Кто-нибудь может помочь
Таблица SQL -> расписания (идентификатор, начало, конец, день, субъектный код)
Таблица SQL -> расписания (идентификатор, начало, конец, день, субъектный код)
Диспетчер временных таблиц
@Controller
public class TimeTableController {
@Autowired
private TimeTableDAO timeTableDAO;
@Autowired
private SubjectDAO subjectDAO;
@Autowired
private StudentGroupDAO studentGroupDAO;
@Autowired
private DayDAO dayDAO;
@Autowired
private TimeDAO timeDAO;
@RequestMapping("/timeTable")
public String viewHomePage(Model model){
List<TimeTable> timeTableDetails= timeTableDAO.findAll();
model.addAttribute("timeTableDetails",timeTableDetails);
return "timeTable";
}
@RequestMapping("/timeTable/new")
public String addTimeTable(Model model){
TimeTable timeTable =new TimeTable();
model.addAttribute("timeTable",timeTable);
List<Subject> subjectDetail = subjectDAO.findAll();
model.addAttribute("subjects", subjectDetail);
List<StudentGroup> studentGroupDetail = studentGroupDAO.findAll();
model.addAttribute("studentGroups",studentGroupDetail);
return "addTimeTable";
}
@RequestMapping(value="/timeTable/save",method= RequestMethod.POST)
public String saveTimeTable(@ModelAttribute("timeTable") TimeTable timeTable){
timeTableDAO.save(timeTable);
return "redirect:/timeTable";
}
@RequestMapping("/timeTable/edit/{id}")
public ModelAndView updateTimeTable(@PathVariable(name="id")Long id){
ModelAndView mav=new ModelAndView(("updateTimeTable"));
TimeTable timeTable = timeTableDAO.findById(id);
mav.addObject("timeTable",timeTable);
List<Subject> subjectDetails = subjectDAO.findAll();
mav.addObject("subjects", subjectDetails);
List<StudentGroup> studentGroupDetails = studentGroupDAO.findAll();
mav.addObject("studentGroups",studentGroupDetails);
List<Day> dayDetails = dayDAO.findAll();
mav.addObject("days",dayDetails);
List<Time> timeDetails = timeDAO.findAll();
mav.addObject("times",timeDetails);
return mav;
}
@RequestMapping("/timeTable/delete/{id}")
public String deleteProduct(@PathVariable(name="id") Long id){
timeTableDAO.delete(id);
return "redirect:/timeTable";
}
}
TimeTable DAO
@Service
public class TimeTableDAO {
@Autowired
TimeTableRepository timeTableRepository;
//to save a time table
public TimeTable save(TimeTable timeTable){
return timeTableRepository.save(timeTable);
}
//to save all the records of time table
public TimeTable saveAll(TimeTable timeTable){
return timeTableRepository.save(timeTable);
}
//to search all
public List<TimeTable> findAll(){
return timeTableRepository.findAll();
}
//get by id
public TimeTable findById(Long id){
return timeTableRepository.findById(id).orElse(null);
}
//delete a machine
public void delete(Long id){
timeTableRepository.deleteById(id);
}
}
updateTimeTable view
<!DOCTYPE html>
<html xmlns:th="https://www.thymeleaf.org">
<head>
<link rel="stylesheet" type="text/css" href="static/css/timeTable.css" th:href="@{/css/timeTable.css}">
<meta charset="UTF-8">
<title>Time Table</title>
</head>
<body>
<form action="#" th:action="@{/timeTable/save}" th:object="${timeTable}" method="post">
<div class="grid-container">
<div class="year"><h1><input style="font-size:40px;" type="text" th:field="*{year}" readonly="readonly"/></h1></div>
<div class="Semester"><h1>Semester</h1></div>
<div class="sem"><h1><input style="font-size:40px;" type="text" th:field="*{semester}" readonly="readonly"/></h1></div>
<div class="TimeTable"><h1>Time Table for</h1></div>
<div class="StudentGroup"> <h1>Student Group</h1></div>
<div class="CS2"><h1><input style="font-size:40px;" type="text" th:field="*{group_code}" readonly="readonly"/></h1></div>
</div>
</form>
<div class="container" style="margin-top:30px">
<br><br>
<form action="#" th:action="@{/timeTable/save}" th:object="${timeTable}" method="post">
<table border="1" >
<thead>
<tr>
</tr>
<br>
<th></th>
<th:block th:each="day : ${days}">
<th th:text="${day.name}"></th>
</th:block>
</thead>
<tbody>
<th:block th:each="time : ${times}">
<tr>
<th th:text="${ time.start }+':00 - ' + ${ time.end }+':00'"></th>
<th:block th:each="day : ${days}">
<td>
<select th:field="*{subject_code}">
<option value=""></option>
<option th:each="subject: ${subjects}" th:value="${subject.subject_code}" th:text="${subject.name}"/>
</select>
</td>
</th:block>
</tr>
</th:block>
<tr>
<td><input type="hidden" th:field="*{id}" readonly="readonly"/></td>
</tr>
<tr>
<td><input type="hidden" th:field="*{group_code}" readonly="readonly"/></td>
</tr>
<tr>
<td><input type="hidden" th:field="*{year}" readonly="readonly"/></td>
</tr>
<tr>
<td><input type="hidden" th:field="*{semester}" readonly="readonly"/></td>
</tr>
<tr>
<td colspan="2">
<button type="submit">Save</button>
</td>
</tr>
</tbody>
</table>
</form>
</div>
</body>
</html>