我正在尝试编写一个Servlet,它将处理HTML POST数据并实现参数及其值,然后将条目添加到表“orderdetails”上的数据库Orders。
然后应该在表中写入参数并为列写入与传递参数相同的值(如果参数为“orderID”,则应将其值写入“orderID”列)
以下是我的代码,目前甚至没有在数据库中添加数据。
import java.io.*;
import java.util.*;
import java.sql.*;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class QueryServlet extends HttpServlet
{
protected void doPost(HttpServletRequest req,HttpServletResponse res)throws ServletException,IOException
{
PrintWriter pw=res.getWriter();
res.setContentType("text/html");
Connection conn = null;
Map m = req.getParameterMap();
Set s = m.entrySet();
Iterator it = s.iterator();
while(it.hasNext()){
Map.Entry<String,String[]> entry = (Map.Entry<String,String[]>)it.next();
String key = entry.getKey();
String[] value = entry.getValue();
pw.println("Key is "+key+"<br>");
if(value.length>1){
for (int i = 0; i < value.length; i++) {
pw.println("<li>" + value[i].toString() + "</li><br>");
}
}else
pw.println("Value is "+value[0].toString()+"<br>");
pw.println("-------------------<br>");
try {
conn = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/orders", "root", "root");
String sqlStr = "insert into orderdetails("+key+")"
+ "values(?)";
try (PreparedStatement stmt = conn.prepareStatement(sqlStr)) {
stmt.setString(1, value[0].toString());
int updateCount = stmt.executeUpdate();
}
} catch (SQLException ex) {
ex.printStackTrace();
}
}
pw.close();
}
}
你能帮我解决这个问题吗?除了尝试制作这个Servlet之外,我几乎没有Java经验。
干杯