Java 在sql表中多行保存时间表详细信息

Java 在sql表中多行保存时间表详细信息,java,mysql,hibernate,spring-boot,Java,Mysql,Hibernate,Spring Boot,在这个系统中,用户将看到一个基本的时间表视图,他可以通过在每个列表中使用下拉菜单添加主题。我需要将时间表中的所有主题存储在sql表中。当用户使用下拉菜单选择主题时,应创建一个包含开始、结束时间、日期和主题代码的新sql行。是否有人可以提供帮助 SQL表->时间表(id、开始、结束、日期、主题代码) SQL表->时间表(id、开始、结束、日期、主题代码) 时间表控制器 @Controller public class TimeTableController { @Autowired

在这个系统中,用户将看到一个基本的时间表视图,他可以通过在每个列表中使用下拉菜单添加主题。我需要将时间表中的所有主题存储在sql表中。当用户使用下拉菜单选择主题时,应创建一个包含开始、结束时间、日期和主题代码的新sql行。是否有人可以提供帮助

SQL表->时间表(id、开始、结束、日期、主题代码)

SQL表->时间表(id、开始、结束、日期、主题代码)

时间表控制器

@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";
    }
}
@控制器
公共类时间表控制器{
@自动连线
私人时间表;
@自动连线
私人主体道主体道;
@自动连线
私人学生组学生组;
@自动连线
私家DayDAO DayDAO;
@自动连线
私人时间道时间道;
@请求映射(“/时间表”)
公共字符串视图主页(模型){
List timeTableDetails=timeTableDAO.findAll();
model.addAttribute(“timeTableDetails”,timeTableDetails);
返回“时间表”;
}
@请求映射(“/timeline/new”)
公共字符串添加时间表(模型){
时间表=新时间表();
model.addAttribute(“时间表”,时间表);
List subjectDetail=subjectDAO.findAll();
model.addAttribute(“主题”,subjectDetail);
List studentGroupDetail=studentGroupDAO.findAll();
model.addAttribute(“studentGroups”,studentGroupDetail);
返回“添加时间表”;
}
@RequestMapping(value=“/timeline/save”,method=RequestMethod.POST)
公共字符串savetimeline(@modeldattribute(“timeline”)时间表){
保存(时间表);
返回“重定向:/timeline”;
}
@请求映射(“/timeline/edit/{id}”)
公共ModelAndView UpdateMetable(@PathVariable(name=“id”)长id){
ModelAndView mav=新的ModelAndView((“updateMetable”);
时刻表=时刻表dao.findById(id);
mav.addObject(“时间表”,时间表);
List subjectDetails=subjectDAO.findAll();
mav.addObject(“主题”,主题详情);
List studentGroupDetails=studentGroupDAO.findAll();
mav.addObject(“studentGroups”,studentGroupDetails);
List dayDetails=dayDAO.findAll();
mav.addObject(“天”,dayDetails);
List timeDetails=timeDAO.findAll();
mav.addObject(“时间”,时间细节);
返回mav;
}
@请求映射(“/timeline/delete/{id}”)
公共字符串deleteProduct(@PathVariable(name=“id”)长id){
timeTableDAO.delete(id);
返回“重定向:/timeline”;
}
}
时间表刀

@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);
    }


}
@服务
公共类时间表{
@自动连线
TimeTableRepository TimeTableRepository;
//保存时间表
公共时间表保存(时间表){
返回timeTableRepository.save(时间表);
}
//保存时刻表的所有记录
公共时间表全部保存(时间表){
返回timeTableRepository.save(时间表);
}
//搜索所有
公共列表findAll(){
返回timeTableRepository.findAll();
}
//通过身份证
公共时间表findById(长id){
返回timeTableRepository.findById(id).orElse(null);
}
//删除机器
公共无效删除(长id){
timeTableRepository.deleteById(id);
}
}
UpdateMetable视图

<!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>

时间表
学期
工作时间表
学生团体



拯救
Help with what,确切地说是什么?当有人单击submit时,所有选定的主题(在时间表视图中)都应该存储在唯一的行(在mysql表中),该行有一个复合键(开始、日期、主题代码)。我刚接触spring boot,不知道该怎么做。如果你知道怎么做,请帮忙。非常感谢。