Java 在mysql表中保存html表的数据

Java 在mysql表中保存html表的数据,java,mysql,hibernate,spring-boot,Java,Mysql,Hibernate,Spring Boot,在我的系统中,用户将看到一个基本的时间表视图,他可以通过在每个列表中使用下拉菜单添加主题。我需要将时间表中的所有主题存储在sql表中。当用户使用下拉菜单选择主题时,应创建一个包含开始、结束时间、日期和主题代码的新sql行。是否有人可以提供帮助 添加时间表视图 <!DOCTYPE html> <html xmlns:th="https://www.thymeleaf.org"> <head> <link rel="stylesheet" type=

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

添加时间表视图

<!DOCTYPE html>
<html xmlns:th="https://www.thymeleaf.org">
<head>
    <link rel="stylesheet" type="text/css" href="static/css/timeTableMapping.css" th:href="@{/css/timeTableMapping.css}">
    <meta charset="UTF-8">
    <title>Time Table</title>
</head>
<body>



</form>
<div class="container2">
    <form action="#" th:action="@{/timeTableMapping/save}" th:object="${timeTableMapping}" method="post">
        <table border="0" cell[adding="10">
            <tr>
                <td><h1>Time Table:</h1></td>
                <td>
                    <select th:field="*{time_table_code}">
                        <option value="">Choose..</option>
                        <option th:each="timeTable: ${timeTables}" th:value="${timeTable.name}" th:text="${timeTable.name}"/>
                    </select>
                </td>
            </tr>
        </table>

        <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 colspan="2">
                    <button type="submit">Save</button>

                </td>
            </tr>

            </tbody>
        </table>
    </form>
</div>

</body>
</html>

因此,请检查列subject_code中的最大长度,然后检查输入的长度。当我只选择了一个主题时,这应该会让你清楚地知道哪里出了问题——它工作正常。但是,当我选择多个1时,它会显示以下错误消息Data truncation:数据对于“subject_code”列来说太长-您尝试插入的数据比字段能够存储的数据长。检查DBi中的定义,我需要为我选择的所有主题添加uniquesql记录。(例如:如果10个时隙和5天,则为50条记录)。但问题是,当我尝试此操作时,所有记录都添加到同一行。这是我尝试此操作时生成的sql语句,在我选择“提交”按钮时生成一次,但我希望每次选择主题时生成此语句[插入timetablemappings(日期、结束、开始、主题代码、时间表代码、id)值(?,,,,,,,)];
@Controller
public class TimeTableMappingController {
    @Autowired
    private  TimeTableMappingDAO timeTableMappingDAO;

    @Autowired
    private TimeTableDAO timeTableDAO;

    @Autowired
    private SubjectDAO subjectDAO;

    @Autowired
    private StudentGroupDAO studentGroupDAO;

    @Autowired
    private DayDAO dayDAO;

    @Autowired
    private TimeDAO timeDAO;


    @RequestMapping("/timeTableMapping")
    public String viewHomePage(Model model){
        List<TimeTableMapping> timeTableMappingDetails= timeTableMappingDAO.findAll();
        model.addAttribute("timeTableMappingDetails",timeTableMappingDetails);
        return "timeTableMapping";
    }



    @RequestMapping("/timeTableMapping/new")
    public String addTimeTableMapping(Model model){
        TimeTableMapping timeTableMapping =new TimeTableMapping();
        model.addAttribute("timeTableMapping",timeTableMapping);

        List<TimeTable> timeTableDetail = timeTableDAO.findAll();
        model.addAttribute("timeTables", timeTableDetail);

        List<Subject> subjectDetail = subjectDAO.findAll();
        model.addAttribute("subjects", subjectDetail);

        List<Day> dayDetails = dayDAO.findAll();
        model.addAttribute("days",dayDetails);

        List<Time> timeDetails = timeDAO.findAll();
        model.addAttribute("times",timeDetails);

        return "addTimeTableMapping";
    }

    @RequestMapping(value="/timeTableMapping/save",method= RequestMethod.POST)
    public String saveTimeTable(@ModelAttribute("timeTableMapping") TimeTableMapping timeTableMapping){
        timeTableMappingDAO.save(timeTableMapping);
        return  "redirect:/timeTableMapping";
    }

    @RequestMapping(value="/timeTableMapping/saveAll",method= RequestMethod.POST)
    public String saveAll(@ModelAttribute("timeTable") TimeTable timeTable){
        timeTableDAO.saveAll(timeTable);
        return  "redirect:/timeTable";
    }

    @RequestMapping("/timeTableMapping/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("/timeTableMapping/delete/{id}")
    public String deleteProduct(@PathVariable(name="id") Long id){
        timeTableDAO.delete(id);
        return  "redirect:/timeTable";
    }
}
There was an unexpected error (type=Internal Server Error, status=500).
could not execute batch; SQL [insert into timetablemappings (day, end, start, subject_code, time_table_code, id) values (?, ?, ?, ?, ?, ?)]; nested exception is org.hibernate.exception.DataException: could not execute batch
org.springframework.dao.DataIntegrityViolationException: could not execute batch; SQL [insert into timetablemappings (day, end, start, subject_code, time_table_code, id) values (?, ?, ?, ?, ?, ?)]; nested exception is org.hibernate.exception.DataException: could not execute batch
Caused by: com.mysql.cj.jdbc.exceptions.MysqlDataTruncation: Data truncation: Data too long for column 'subject_code' at row 1