UserDAOpackage DAO;import java.sql.*;
import java.util.ArrayList;
import java.util.List;
import mysql.User;
public class UserDAO {
private String JDBCURL = "jdbc:mysql://localhost:3306/2015124044?useUnicode=true&characterEncoding=UTF-8";
private String user = "root"; 
private String password = "123456"; 
private Connection conn = null;
private PreparedStatement stmt = null;
private ResultSet rst = null; public List<User> getUser(User user1){
List<User> users = new ArrayList<User>();
try {

Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection(JDBCURL,user,password);
String sql = "SELECT * FROM t_user where username=? ";
stmt = conn.prepareStatement(sql);
stmt.setString(1,user1.getUsername());
rst = stmt.executeQuery();
stmt.clearParameters();
User user2 =null;
while(rst.next()){
user2 = new User();
user2.setId(rst.getInt("id"));
user2.setUsername(rst.getString("usename"));
user2.setPassword(rst.getString("password"));
user2.setEmail(rst.getString("email"));
user2.setPhone(rst.getString("phone"));
user2.setQq(rst.getString("qq"));
user2.setInfo(rst.getString("info"));
users.add(user2);
}
} catch (Exception e) {
e.printStackTrace();
}finally{  
try {
stmt.close();  
conn.close();  
} catch (SQLException e) {
e.printStackTrace();
}
}
return users;
}

//添加用户
public int add(User user1){
int result = -1;
try {

Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection(JDBCURL,user,password);
String sql = "INSERT INTO t_user(username,password,email,phone,qq,info) VALUES(?,?,?,?,?,?)";
stmt = conn.prepareStatement(sql);
stmt.setString(1, user1.getUsername());
stmt.setString(2, user1.getPassword());
stmt.setString(3, user1.getEmail());
stmt.setString(4, user1.getPhone());
stmt.setString(5, user1.getQq());
stmt.setString(6, user1.getInfo());
System.out.println(sql);

result = stmt.executeUpdate(sql);
stmt.clearParameters();
System.out.println("12345665465");

} catch (Exception e) {
e.printStackTrace();
}finally{  
try {
stmt.close();  
conn.close();  
} catch (SQLException e) {
e.printStackTrace();
}
}
return result;
}

//修改密码
public int update(User user1){
int result = -1;
try {

Class.forName("com.mysql.jdbc.Driver");
//创建数据库连接
conn = DriverManager.getConnection(JDBCURL,user,password);
//定义数据库更新语句
String sql = "UPDATE t_user SET password = ? where username = ?";
stmt = conn.prepareStatement(sql);
stmt.setString(1,user1.getPassword());
stmt.setString(2,user1.getUsername());
stmt.clearParameters();
//执行数据库更新操作,返回影响行数
result = stmt.executeUpdate(sql);
} catch (Exception e) {
e.printStackTrace();
}finally{  //一定要使用finally,释放资源
try {
stmt.close();  //关闭申明
conn.close();  //关闭连接
} catch (SQLException e) {
e.printStackTrace();
}
}
return result;
}}
userregisterpackage servlets;import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import DAO.*;
import mysql.*;
/**
 * Servlet implementation class userregister
 */
@WebServlet("/userregister")
public class userregister extends HttpServlet {
private static final long serialVersionUID = 1L;
       UserDAO userDao =new UserDAO();
    /**
     * @see HttpServlet#HttpServlet()
     */
    public userregister() {
        super();
        // TODO Auto-generated constructor stub
    }
/**
 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
 */
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
UserDAO userDao = new UserDAO();
request.setCharacterEncoding("UTF-8");
User user = new User();
user.setUsername(request.getParameter("username"));
user.setPassword(request.getParameter("password"));
user.setEmail(request.getParameter("email"));
user.setPhone(request.getParameter("phone"));
user.setQq(request.getParameter("qq"));
user.setInfo(request.getParameter("info"));
userDao.add(user);
System.out.println(user.getUsername());
response.sendRedirect("login.html");
}}点击注册后,能在结果页面看到注册的信息,数据库中却没有数据,请问各位是什么问题

解决方案 »

  1.   

    这个问题简单一些,我回下啊!1。把接收到表单数据取得值,这个你后台输出下,看看对不对!
    2。把这些值存到数据库中,我看你调用了userDao.add(user);进去检查这里有没有存进去(断点调试,如果你会的话),一般这样都能解决,慢慢来,祝你好运!
      

  2.   

    +1
    这问肯定是值传递不对,debug看参数是否正确
      

  3.   

    使用system.out调试看到哪一步没有
      

  4.   


    注意:使用插入,修改,删除等sql语句 属于 DML语句,需要进行事务提交,即sql命令发送器发送sql之后 进行事务提交 stmt.commit();    //添加用户
        public int add(User user1){
            int result = -1;
            try {
                 
                Class.forName("com.mysql.jdbc.Driver");
                conn = DriverManager.getConnection(JDBCURL,user,password);
                String sql = "INSERT INTO t_user(username,password,email,phone,qq,info) VALUES(?,?,?,?,?,?)";
                stmt = conn.prepareStatement(sql);
                stmt.setString(1, user1.getUsername());
                stmt.setString(2, user1.getPassword());
                stmt.setString(3, user1.getEmail());
                stmt.setString(4, user1.getPhone());
                stmt.setString(5, user1.getQq());
                stmt.setString(6, user1.getInfo());
                System.out.println(sql);
                 
                result = stmt.executeUpdate(sql);   
                stmt.commit();
                stmt.clearParameters();
                System.out.println("12345665465");
             
            } catch (Exception e) {
                e.printStackTrace();
            }finally{  
                try {
                    stmt.close();  
                    conn.close();  
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            return result;       
        }
         
        //修改密码
        public int update(User user1){
            int result = -1;
            try {
                 
                Class.forName("com.mysql.jdbc.Driver");
                //创建数据库连接
                conn = DriverManager.getConnection(JDBCURL,user,password);
                //定义数据库更新语句       
                String sql = "UPDATE t_user SET password = ? where username = ?";
                stmt = conn.prepareStatement(sql);
                stmt.setString(1,user1.getPassword());
                stmt.setString(2,user1.getUsername());
                stmt.clearParameters();
                //执行数据库更新操作,返回影响行数       
                result = stmt.executeUpdate(sql);   
        stmt.commit();
            } catch (Exception e) {
                e.printStackTrace();
            }finally{  //一定要使用finally,释放资源
                try {
                    stmt.close();  //关闭申明
                    conn.close();  //关闭连接
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            return result;       
        }
     
    }