mariadb 如何将表格行设置为数组?

1l5u6lss  于 2022-11-08  发布在  其他
关注(0)|答案(2)|浏览(111)

如果按下面的代码所示添加表行,则在数据库中保存这些行时,它们将存储在一行中。
第一个
服务、ServiceImpl(使用JPA系统信息库中的save方法)
第一个
控制器

@RequestMapping("/testCase/register")
    public String register(TestCase testCase)
    {
        testCaseService.register(testCase);

        return "redirect:/testCase/projectList";
    }

我想为我添加的每一行添加一行到数据库中,如下面的查询语句,所以请告诉我该怎么做。

INSERT INTO test_case VALUES(NULL, 'name', 'procedure', 'expect', '1'), (NULL, 'name', 'procedure', 'expect', '1'), (NULL, 'name', 'procedure', 'expect', '1');
pqwbnv8z

pqwbnv8z1#

就我所见,你发布的是一个单一的实体。要发布一个列表,你必须修改控制器来接受该列表

@RequestMapping("/testCase/register")
public String register(List<TestCase> testCases)
{
    testCaseService.register(testCases);

    return "redirect:/testCase/projectList";
}

然后修改html,使其正确地Map到给定列表。

<form th:action="@{'/testCase/register'}" method="post">
    <table id="table">
      <tr>
        <td>num</td>
        <td>name</td>
        <td>procedure</td>
        <td>expect</td>
    </tr>
    <tr>
        <td><h4></h4></td>
        <td><input type="text" name="testCases[0].testCaseName"></td>
        <td><textarea name="testCases[0].testProcedure" onkeydown="resize(this)" onkeyup="resize(this)"></textarea></td>
        <td><input type="text" name="testCases[0].expect"></td>
    </tr>
    <tr>
        <td>
            <input type="button" value="addRow" onclick="addRow()"></input>
            <input type="submit" value="submit">
        </td>
    </tr>
 </table>
</form>

您还必须修改html,以便addRow()函数正确地为输入名称添加下一个[x]
如果要填充预先存在的数据,则必须在each循环中添加行,如

<tr th:each="testCase, iter : ${testCases}">
    <td><h4></h4></td>
    <td><input type="text" th:name="${testCases[__${personStat.index}__].testCaseName}" th:value="${testCase.testCaseName}"></td>
    <td><textarea th:name="${testCases[__${personStat.index}__].testCaseName}" th:value="${testCase.testCaseName}" onkeydown="resize(this)" onkeyup="resize(this)"></textarea></td>
    <td><input type="text" th:name="${testCases[__${personStat.index}__].expect}" th:value="${testCase.expect}"></td>
</tr>
qxsslcnc

qxsslcnc2#

你可以用百里香叶
请参阅https://www.thymeleaf.org/
帮助您轻松控制网页中元素上的数据
将表单添加到html页,如下所示:

<form th:action="@{'/testCase/register'}" method="post" th:object="${testcase}>
    <table id="table">
      <tr>
        <td>num</td>
        <td>name</td>
        <td>procedure</td>
        <td>expect</td>
    </tr>
    <tr>
        <td><h4></h4></td>
        <td><input type="text" name="testCaseName" th:field="*{testCaseName}" id="testCaseName"></td>
        <td><textarea name="testProcedure" th:field="*{testProcedure}" id="testProcedure" onkeydown="resize(this)" onkeyup="resize(this)"></textarea></td>
        <td><input type="text" name="expect" th:field="*{expect}" id="expect"></td>
    </tr>
    <tr>
        <td>
            <input type="button" value="addRow" onclick="addRow()"></input>
            <input type="submit" value="submit">
        </td>
    </tr>
 </table>
</form>

请确保字段名称与实体TestCase中的字段名称相同
修改控制器类,如下所示:

@ModelAttribute(value = "testcase")
public TestCase testcase()
 {
    return new TestCase();
 }

@RequestMapping(value = "/testCase/register" , method = RequestMethod.POST)
public String register(@ModelAttribute("testcase") TestCase testCase)
 {
    testCaseService.register(testCase);

    return "redirect:/testCase/projectList";
 }

相关问题