2020-08-07 SMBMS项目修改密码功能实现、登陆拦截优化、Ajax验证旧密码

修改密码功能实现

实现任何一个功能,按照逻辑来看,是控制层调取业务层,业务层处理逻辑,调取DAO层连接数据库处理请求内容。因此,从业务层最基础写起,方法写好后,去上一层调用,进行测试。

(一)DAO层编写:
①在UserDao接口中添加方法

//修改当前用户密码
public int updatePwd(Connection connection,String id,String password) throws SQLException;
		②实现类UserDaoImpl.java中具体写出具体SQL操作
		在业务层中不用担心这些参数来源,在公共类中已经处理了相关参数来源
public int updatePwd(Connection connection, String username, String password) throws SQLException {
   
    PreparedStatement pstm = null;
    int results = 0;
    if(connection!=null){
   
        String sql = "update smbms_user set userPassword=? where userCode=?";
        Object params[] = {
   password,username};
        results = BaseDao.excute(connection,sql,params,pstm);
        BaseDao.close(connection,pstm,null);
    }
    return results;
}

这样Dao层已经执行了相关SQL并且查询出相关数据,注意这里的SQL语句,一定要写对,数据库名、字段名不要拼错,
方法最终返回的是一个int数值,代表执行成功了多少条【这里注意,只有Query方法会返回一个结果集,增删改都是返回条数】

(二) 业务层编写
同样,业务层先去UserService接口中定义方法:

public boolean updatePwd(String uesrcode, String password) throws SQLException;

再去实现类UserService.java中实现具体方法:

public boolean updatePwd(String uesrcode, String password){
   
    Connection connection = null ;
    boolean flag = false ;
    connection = BaseDao.getConnection();
    try {
   
        if(userDao.updatePwd(connection,uesrcode,password)>0){
   
            flag = true;
        }
    } catch (SQLException e) {
   
        e.printStackTrace();
    }finally {
   
        BaseDao.close(connection,null,null);
    }
    return flag;
}

注意,这里的代码中,不再将查询结果传递,而是根据DAO层传回的int值大小判断,用flag值来判断是否执行,记得关闭连接

(三)控制层UserServlet的编写
注意!这里编写的Servlet采用了复用的方式,否则后续功能扩建需要建太多的servlet文件:

package com.wang.servlet.user;

import com.mysql.jdbc.StringUtils;
import com.wang.pojo.User;
import com.wang.service.user.UserService;
import com.wang.service.user.UserServiceImpl;
import com.wang.util.Constants;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.sql.SQLException;

//如何实现servlet复用
public class UserServlet extends HttpServlet {
   
    @Override
    
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值