当前位置: 首页 > 知识库问答 >
问题:

Java:在MySQL中插入多行[重复]

叶元凯
2023-03-14

我想知道如何一次将数据批量插入MySQL数据库,我不知道怎么做。根据mvc单击提交按钮时插入表数据。

农民idname来自另一个表我想将所有数据添加到另一个表中,农民idname是只读的

检查这张照片

milkload jsp页面

<form action="MilkloadAdd" method="post"> 
    <table id="example" class="display" width="100%" cellspacing="0">
        <%
            List<Farmer> farmer = (List<Farmer>) 
            request.getAttribute("Farmer_list");
            for (Farmer emp1 : farmer) {
        %>
        <tr>
        <td> <input type="text" name="f_id" value="<%=emp1.getfId()%>" readonly="readonly" required/></td>
        <td> <input type="text" name="fname" value="<%=emp1.getfFname()%>"  readonly="readonly"required/></td>
        <td><input type="text" name="lactometer" value="" required onkeyup="snf();"/></td>
        <td><input type="text" name="fatvalue" value="" required onkeyup="snf();"/></td>
        <td><input type="text" name="weights" value=""required/> </td>
        <td><input type="text" name="snf" value=""required readonly="readonly"/></td>
        </tr>
<% } %>

Milkload模型类

    public void setLactometer(String lactometer) {this.lactometer = lactometer;}
    public String getFatvalue() {return fatvalue;}
    public void setFatvalue(String fatvalue) {this.fatvalue = fatvalue;}
    public String getWeights() {return weights;}
    public void setWeights(String weights) {this.weights = weights;}
    public String getDate() {return date;}
    private String date;
    private String cpid;
    private String milkindex;
    private String snf;
}

MilkLoadDAO类

  package com.nestle.db;

    public class MilkloadDAO {
   private static final String SQL_INSERT_MILKLOAD="INSERT INTO 
  milk_load(Date,Cp_Id,F_Id,Fat,Weight,Lactormeter) VALUES (?,?,?,?,?,?)";

   public static void insertMilkLoad(Milkload milkload) {

}

共有1个答案

桓修能
2023-03-14

您可以使用这种方式获取多行的值。

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

                MilkLoad milkload;
                List<MilkLoad> listMilkLoad= new ArrayList<MilkLoad>();


                String[] fid  = request.getParameterValues("f_id");
                String[] lactometer  = request.getParameterValues("lactometer");
                String[] weights = request.getParameterValues("weights");
                String[] date = request.getParameterValues("Date");
                //Set other values like this as well.


                for(int x=0;x<fid.length;x++){

                    milkload = new MilkLoad();
                    milkload.setFatvalue(fid[x]);
                    milkload.setLactometer((lactometer[x]));
                    //Set other values like this as well.

                    //Adding the object to a list
                    listMilkLoad.add(milkload);
                }

             MilkloadDAO.insertMilkLoad(listMilkLoad);

    }

MilkLoadDAO类的方法应该这样更改。

    public static void insertMilkLoad(List<MilkLoad> listMildLoad){

    }

你的MilkLoadDAO类会是这样的。

    public class MilkloadDAO {
               private static final String SQL_INSERT_MILKLOAD="INSERT INTO 
              milk_load(Date,Cp_Id,F_Id,Fat,Weight,Lactormeter) VALUES (?,?,?,?,?,?)";

               public static void insertMilkLoad(List<listMilkLoad> listMildLoad) {

                   try (Connection connection = DbConnect.getConnection()) {
                    PreparedStatement statement = connection.prepareStatement(SQL_INSERT_MILKLOAD);

                    for(MilkLoad milkload:listMildLoad){
                         statement.setString(1, milkload.getDate());
                         statement.setString(2, milkload.getCpid());
                         statement.setString(3, milkload.getFid());
                         statement.setString(4, milkload.getFatvalue());
                         statement.setString(5, milkload.getWeights());
                         statement.setString(6, milkload.getLactometer());
                         System.out.println(SQL_INSERT_MILKLOAD);
                         statement.execute();
                    }
                } catch (Exception e) {
                    System.out.println("MILKLOAD DAO error"+ e.getMessage());
                   }
               }
            }

您可能需要根据您的变量进行轻微调整,但我认为这个想法很清楚。

希望有帮助:)

 类似资料:
  • 问题内容: 这个问题的答案是 社区的努力。编辑现有答案以改善此职位。它目前不接受新的答案或互动。 如果一次插入多行,数据库查询会更快吗: 喜欢 (我需要插入2-3000行) 问题答案: 使用语法的语句可以插入多行。为此,请包括多个列值列表,每个列值括在括号内并用逗号分隔。 例: 资源

  • 问题内容: 我有一张桌子,就是PK。当我插入行时,将有重复的键,并且我需要总结三个统计信息。我在Java中对PreparedStatement使用以下查询: 是否有更简洁的查询来实现?因为我简化了查询,所以那里有十多个统计信息。 问题答案:

  • 问题内容: 如何防止在php mysql中输入重复记录?在插入表之前验证输入。 我目前正在为我的网站建立一个用户注册部分,但是如果在数据库中发现重复的用户名或电子邮件地址,我想向他们显示一个错误。 编辑 这是我到目前为止要插入的行…我将如何在这里实现这两个答案: 我猜我可以在if … else语句中实现所有功能吗? 问题答案: 我使用了sql语句以及if else语句。 然后 显示错误消息,以防止

  • 问题内容: 我想使用Java一次将多行插入MySQL表中。行数是动态的。过去我在做… for (String element : array) { myStatement.setString(1, element[0]); myStatement.setString(2, element[1]); } 我想对此进行优化,以使用MySQL支持的语法: INSERT INTO table (col1,

  • 问题内容: 您好,我正在制作一个在pdo中进行多次插入的类。 是这样的 搜索后,我发现我必须建立类似 然后用这个执行 ,其中是 问题是我还得到一个错误就如何解决呢? 这是我正在做的一小段。 问题答案: 避免并发症的简单方法是这样的 但是,这将多次执行该语句。因此,最好创建一个较长的单个查询来执行此操作。 这是我们如何执行此操作的示例。

  • 问题内容: 我正在尝试在SQLite(最新版本)表中插入多行,但抛出错误 从这里得到的想法,这是我的SQL查询: 但它抛出 这是我的表结构 我的查询有问题吗? 任何帮助,将不胜感激。 TIA 问题答案: 由于提到了最新版本的SQLite,因此应使用多值插入(自3.7.11版以来受SQLite支持),如下所示: 这是更短,更快,更不容易出错的方法。其他一些数据库(至少MySQL和PostgreSQL