[英]Cannot insert a data to table on servlet
我正在尝试从reg表单中读取数据并将其插入到db中,这部分应该添加该项目,但是它不起作用。 你有建议吗?
if ("/RegForm".equals(url)) {
request.getRequestDispatcher("/index.jsp").forward(request, response);
return;
} else if ("/Signup".equals(url)) {
//dddddddd
try {
// Register JDBC driver
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/deneme", "root", "");
Statement stmt = conn.createStatement();
// Execute SQL query
String sql1 = "INSERT INTO students (name, id, `gpa`) VALUES ("+ request.getParameter("st_name") +","+ request.getParameter("st_id") +","+ request.getParameter("st_gpa") +")";
stmt.executeUpdate(sql1);
} catch (Exception se) {
//Handle errors for JDBC
}
request.getRequestDispatcher("/register_action.jsp").forward(request, response);
return;
}
ps:我真的不熟悉在Web应用程序中使用Java,只是试图学习。
您遇到任何特定的错误吗? 或做一件事就是像这样打印计数:
int count= stmt.executeUpdate(sql1);
检查计数值。 在其他条件中放入一些SOP,然后交叉检查是否要转到该部分。
您应该使用prepareStatement避免sql注入 ,您的代码应为:
if ("/RegForm".equals(url)) {
request.getRequestDispatcher("/index.jsp").forward(request, response);
return;
} else if ("/Signup".equals(url)) {
//dddddddd
try {
// Register JDBC driver
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/deneme", "root", "");
PreparedStatement preparedStatement = null;
// Execute SQL query
String insert= "INSERT INTO students (name, id, `gpa`) VALUES (?,?,?)";
conn.setAutoCommit(false);
preparedStatement = con.prepareStatement(insert);
//Assume all paramaters as String
preparedStatement.setString(1, request.getParameter("st_name"));
preparedStatement.setString(2, request.getParameter("st_id"));
preparedStatement.setString(3, request.getParameter("st_gpa"));
preparedStatement.executeUpdate();
conn.commit();
} catch (Exception se) {
//Handle errors for JDBC
}
request.getRequestDispatcher("/register_action.jsp").forward(request, response);
return;
}
您可以在此处查看更详细的示例
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.