2015-04-25 25 views
0

这对MySQL是我的数据库添加数据与servlet的不工作

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数据库的连接正在工作,因为我有另一个项目,其登录具有与数据库相同的连接,并且正在工作。

任何提示/评论,欢迎

+2

那么你执行了哪些诊断?你确定这个请求正在传递给你的servlet吗?你记录了什么?您的驱动程序是否设置为自动提交? (如果没有,也许这就是问题所在。) –

+0

在控制台中是否出现错误? –

+0

我猜这是@JonSkeet对自动提交的建议。 –

回答

1

一些事情你可以检查:
1.调试如果&校验值是由servlet捕捉的代码。
2.在executeUpdate()后面使用commit()。也许你的配置设置为由于某些原因自动关闭。
3.是否打印此字符串? “数据已成功注册...”
4.最后,是否有任何异常?