jakarta-ee - Java : Insert multiple rows into MySQL

标签 jakarta-ee

我想知道如何一次性向MySQL数据库插入数据,我不知道该怎么做。根据mvc,点击提交按钮时插入表数据。

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

check this pic

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>
<% } %>

牛奶负荷模型类

    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) {

}

最佳答案

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

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

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

希望有帮助:)

关于jakarta-ee - Java : Insert multiple rows into MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46482149/

相关文章:

java - 如何在 CDI AfterDeploymentValidation 生命周期事件期间实例化 bean 并将参数传递给 bean?

java - EJB Façade 调用另一个 EJB 中的方法

java - Jersey ResponseBuilder 文件名编码

java - 可序列化类 X 未声明 long 类型的静态最终 serialVersionUID 字段

java - 构建长期应用架构

java - 基于JAVA EE的文件管理系统

jakarta-ee - Caused by : com. ibm.websphere.ce.j2c.ConnectionWaitTimeoutException : Connection not available, 等待180008超时

java - 按相关实体筛选 Hibernate 条件

hibernate - 执行此操作需要事务(使用事务或扩展持久性上下文)

java - Java Web 应用程序中 Web 请求的优先级