我设计了一个jsp页面,我将字段值传递给另一个jsp页面。在此页面中,我想将值存储在数据库中,并根据此页面中的成功或失败显示相应的消息。一切似乎都正常工作,除了数据没有插入数据库并且没有显示错误消息。
students.jsp
<form id="form" method="post" action="students_final.jsp">
Student name:<input type="text" value="" name="name">
Reg no:<input type="text" value="" name="regno">
<input type="submit" value="Register" />
</form>
students_final.jsp
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@page language="java"%>
<%@page import="java.lang.*" import="java.sql.*"%>
<%
try {
Class.forName("com.mysql.jdbc.Driver");
String url="jdbc:mysql://localhost:3306/userdbase";
Connection connection = DriverManager.getConnection(url, "root", "passwd");
String name=request.getParameter("name");
String regno=request.getParameter("regno");
"INSERT INTO `schooldatabase`.`test` (`name`) VALUES ('" + name + "');";
Statement st= connection.createStatement();
int count=st.executeUpdate(strquery);
/*ResultSet rs= st.executeQuery(strquery);*/
}
catch(Exception e)
{
System.out.println("Could not connect");
}
%>
我知道有一个非常愚蠢的错误。请帮我找到!!
答案 0 :(得分:1)
尝试提交交易。可能是自动提交是错误的。
您应该使用PreparedStatement。这是一个等待发生的SQL注入攻击。
您不会关闭任何资源,因此如果您使用此应用程序,此应用程序将无法运行很长时间。
答案 1 :(得分:0)
String url = "jdbc:mysql://localhost:3306/schooldatabase";
如果我没弄错,你在MySQL中运行了这个查询,据我所知,“schooldatabase”是数据库名称,“test”就是其中的表。还
String query = "INSERT INTO test ('name') VALUES ("+name+")";
int count = st.executeUpdate(query);
这样可行。
答案 2 :(得分:0)
“INSERT INTO schooldatabase
。test
(name
)VALUES('”name +“');”;
将此值分配给变量