我已完成整个编码,但数据未插入数据库
Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection connection =
DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/userinfo?user=root&password=admin");
Statement statement = connection.createStatement() ;
resultset = statement.executeQuery("select * from item") ;
现在这是我完成连接的部分,我认为没关系,因为在第一部分,我显示数据库中的值,它正在工作
现在我已经在下一部分完成了这项工作,我已经从输入框
获取了输入值 <input type="submit" value="RECEIVE" style="width:100px; height:40px"
name="receive ">
现在&lt;%
PrintWriter pw = response.getWriter();
PreparedStatement pst = null;
if(request.getParameter("receive")!=null)
{
String dob=request.getParameter("datepicker");
String supplier=request.getParameter("supplier");
String type=request.getParameter("type");
String quantity=request.getParameter("quantity");
String queryString = "INSERT INTO stock_quantity values(?,?,?,?)";
pst = connection.prepareStatement(queryString);
pst.setString(2,dob);
pst.setString(3,supplier);
pst.setString(4,type);
pst.setString(5,quantity);
int i = pst.executeUpdate();
if(i!=0){
%>
<script language="javascript">
alert("Send sucess");
</script>
<%
}
else{
%>
<script language="javascript">
alert("Enter all data");
</script>
<%
}
}
%>
数据未插入..在代码中找到问题
答案 0 :(得分:0)
不要在第一个控制器中与db建立连接(在jsp的情况下),只需将数据发送到另一个控制器,然后就可以将其插入到db。您可以使用@Requestparam(“param”)获取单个参数,或使用@ModelAttribute(“name”)获取整个POJO对象(您将获得所有参数)。
所以你的html文件看起来像(在thymeleaf中)你需要将一些百里香的东西改成jsp:
<form action="#" th:action="@{/save}" th:object="${yourObject}" method="post">
<div>
<label for="quantity">quantity:</label>
<input type="quantity" th:field="*{quantity}">
</div>
<button type="submit">Submit</button>
</form>
你的第二个控制器:
@PostMapping("save")
public String reset(@ModelAttribute(value = "yourObject") YourPOJOClass request) {
//save to DB
}
如果要接受参数而不是整个对象,请将名称参数添加到jsp / html 例如:
<div>
<label for="quantity">quantity:</label>
<input type="quantity" th:field="*{quantity}" name="quantity">
</div>
在控制器中你可以得到这样的参数:
@PostMapping("save")
public String reset(@RequestParam("quantity") String quantity)