我想知道如何一次性向MySQL数据库插入数据,我不知道该怎么做。根据mvc,点击提交按钮时插入表数据。
farmer id
和name
来自另一个表我想将所有数据添加到另一个表中,farmer id
和name
是只读的
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/