Java 无法向servlet上的表插入数据
我正在尝试从注册表表单读取数据并将其插入数据库,这部分应该添加该项,但它不起作用。你有推荐信吗Java 无法向servlet上的表插入数据,java,mysql,servlets,Java,Mysql,Servlets,我正在尝试从注册表表单读取数据并将其插入数据库,这部分应该添加该项,但它不起作用。你有推荐信吗 if ("/RegForm".equals(url)) { request.getRequestDispatcher("/index.jsp").forward(request, response); return; } else if ("/Signup".equals(url)) { //dddddddd try {
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);
检查count的值。将一些S.O.P放入else条件中,并交叉检查它是否会进入该部分。您应该使用以避免,您的代码应该是:
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;
}
你可以在这里查看更多信息你能告诉我你遇到了什么异常吗。你是如何得到st_的名字,st_的id,st_的gpa的。请提供更多说明。所以我们可以提供帮助。省略撇号,但请先真正阅读:这是撇号!你是对的,谢谢。你正在尝试将字符串作为整数插入。即使在添加了单引号之后,这也可能会导致sql注入或简单地打断o'brien之类的字符串。请使用insted of语句避免此类错误,也可以避免sql注入。这是一个错误,很抱歉造成误导。