使用servlet无法将数据添加到mysql

时间:2015-04-25 17:46:41

标签: java mysql servlets

这是我的数据库

CREATE TABLE `Animal` ( `name` varchar(128) NOT NULL, `breed` varchar(128) NOT NULL, `age` varchar(128) NOT NULL )    

register.html填写数据

<html>
<body>
<form action="servlet/Register" method="post">

name <input type="text" name="name"/><br/><br/>
breed <input type="password" name="breed"/><br/><br/>
age <input type="password" name="age"/><br/><br/>
<br/><br/>
<input type="submit" value="register"/>
</form>
</body>
</html>    

我的servlet

package animals;


import java.io.*;
import java.sql.*;
import javax.servlet.ServletException;
import javax.servlet.http.*;

public class Register extends HttpServlet {

public void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {

    response.setContentType("text/html");
    PrintWriter out = response.getWriter();

    String name = request.getParameter("name");
    String breed = request.getParameter("breed");
    String age = request.getParameter("age");


    try {
        Class.forName("com.mysql.jdbc.Driver");
        Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "");
        PreparedStatement ps = con.prepareStatement(
                "INSERT INTO Animal (name,breed,age) VALUES(?,?,?)");

        ps.setString(1, name);
        ps.setString(2, breed);
        ps.setString(3, age);


        int i = ps.executeUpdate();
        if (i > 0) {
            out.print("Data successfully registered...");
        }

    } catch (Exception e2) {
        System.out.println(e2);
    }

    out.close();
}

}

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee       http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
    <servlet>
    <servlet-name>Register</servlet-name>
    <servlet-class>animals.Register</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>Register</servlet-name>
    <url-pattern>/servlet/Register</url-pattern>
</servlet-mapping>
<welcome-file-list>
    <welcome-file>register.html</welcome-file>
</welcome-file-list>
</web-app>

当我填写表格并提交时,它会将我发送到/注册,但它是空白的,并且它不会在我的数据库中添加数据。

我100%确定我与java数据库的连接正常,因为我有另一个项目,其登录名与数据库连接相同,并且正在运行。

欢迎任何提示/评论

1 个答案:

答案 0 :(得分:1)

您可以检查的事项很少:
1.调试代码&amp;检查servlet是否捕获了值 2.在executeUpdate()之后使用commit()。由于某些原因,您的配置可能会设置为自动提交 这个字符串是打印的吗? &#34;数据已成功注册...&#34;
4.最后,有任何例外吗?