JDBC:找回员工密码

这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

Function:

  • 设计一个找回员工密码的界面(FindPasswordFrame),
  • 在三个文本框中分别输入员工帐号、密码保护问题和密码保护答案
  • 如果输入全部正确,单击“找回密码”按钮,则在一个JLabel中显示员工密码。

UI类

/**
 * 设计一个找回员工密码的界面(FindPasswordFrame),
 * 在三个文本框中分别输入员工帐号、密码保护问题和密码保护答案
 * 如果输入全部正确,单击“找回密码”按钮,则在一个JLabel中显示员工密码。
 */
package com.Test.view;

import java.awt.Component;
import java.awt.Container;
import java.awt.FlowLayout;
import java.util.List;
import java.awt.event.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.Vector;

import javax.swing.BorderFactory;
import javax.swing.ComboBoxModel;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.swing.plaf.basic.BasicButtonListener;
import javax.swing.plaf.basic.BasicOptionPaneUI.ButtonActionListener;

import com.Test.dao.UsernameDAO;
import com.Test.dto.UsernameDTO;

public class UsernameDisplay extends JFrame{
    private JLabel accountJlb,questionJlb,answerJlb,displayJlb;
    private JTextField tf1,tf2,tf3;
    private JButton findBtn;


    //构造方法
    public UsernameDisplay() {
        this.setLayout(null);
        Container c = this.getContentPane();

        accountJlb = new JLabel("员工帐号:");
        accountJlb.setBounds(80,30,70,30);
        c.add(accountJlb);
        tf1 = new JTextField();
        tf1.setBounds(190,30,190,30);
        tf1.setBorder(BorderFactory.createLoweredBevelBorder());
        c.add(tf1);

        questionJlb = new JLabel("密码保护问题:");
        questionJlb.setBounds(80,50,100,90);
        c.add(questionJlb);
        tf2 = new JTextField();
        tf2.setBounds(190,80,190,30);
        tf2.setBorder(BorderFactory.createLoweredBevelBorder());
        c.add(tf2);

        answerJlb = new JLabel("密码保护答案:");
        answerJlb.setBounds(80,100,100,90);
        c.add(answerJlb);
        tf3 = new JTextField();
        tf3.setBounds(190,130,190,30);
        tf3.setBorder(BorderFactory.createLoweredBevelBorder());
        c.add(tf3);

        findBtn = new JButton("找回密码");
        findBtn.setBounds(140,190,90,30);
        c.add(findBtn);

        displayJlb = new JLabel();
        displayJlb.setBounds(250,190,90,30);
        c.add(displayJlb);//不能添加到下面
        //FindPassword
        findBtn.addActionListener(new ActionListener()
          {
           public void actionPerformed(ActionEvent e)
           {
             //获取输入
              String userID = tf1.getText().trim();
              String pw =  tf2.getText().trim();  
              String pw1 =  tf3.getText().trim(); 
              //String empPassword = null;

              JButton tempButton=(JButton)e.getSource();
            if(tempButton==findBtn) //按下找回密码按钮后判断输入
            {
                if(userID.equals(""))
                {
                    JOptionPane.showMessageDialog(null,"账号不能为空!","错误提示",JOptionPane.ERROR_MESSAGE); 
                }
                else if(pw.equals(""))
                {
                    JOptionPane.showMessageDialog(null,"密码保护问题不能为空!","错误提示",JOptionPane.ERROR_MESSAGE);          
                }
                else if(pw1.equals(""))
                {
                    JOptionPane.showMessageDialog(null,"密码保护答案不能为空!","错误提示",JOptionPane.ERROR_MESSAGE);          
                }
                else
                {
                   UsernameDAO userdao = new UsernameDAO();
                   UsernameDTO result = new UsernameDTO();
                   result = userdao.findPass(userID, pw, pw1);

                   if(result!=null) {    //确认输入账号 密保和答案正确
                       displayJlb.setText(result.getEmpPassword()); 
                     //JOptionPane.showMessageDialog(null,"密码是: " + result.getEmpPassword());
                       //System.out.println(result.getEmpPassword());
                   }
                   else {
                       JOptionPane.showMessageDialog(null, "账号或密保或密保答案有误!");
                   }

                }
            }
          }}); 

        this.setTitle("FindPassword");
        this.setSize(500,300);
        this.setLocationRelativeTo(null);
        int w = Toolkit.getDefaultToolkit().getScreenSize().width;
        int h = Toolkit.getDefaultToolkit().getScreenSize().height;
        this.setLocation(w/2-250, h/2-180);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setVisible(true);

    }


    public static void main(String[] args) {
            new UsernameDisplay();
    }

}

DAO类

/**
 * 千枝竞秀有天皆丽日,万木争荣无地不春风
 * Author: RoniZeng
 * Time:     17/12/25
 */
package com.Test.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

import com.Test.Util.DBUtil;
import com.Test.dto.UsernameDTO;

public class UsernameDAO {

    private UsernameDTO userdto;

    /**
     * 显示密码select
     * @param empPassword
     * @return String
     */
    public UsernameDTO findPass(String account, String question,String answer){
        Connection conn = null;
        PreparedStatement statement = null;
        ResultSet rs = null;
        try{
            conn = DBUtil.getConnection();

            String sql = "select * from Employee where empAccount=? and empQuestion=? and empAnswer=?";

            statement = conn.prepareStatement(sql);

            statement.setString(1, account);
            statement.setString(2, question);
            statement.setString(3, answer);

            rs = statement.executeQuery();

            UsernameDTO userdto =null;

            if(rs.next()) {
                userdto = new UsernameDTO();
                String password = rs.getString("empPassword");
                userdto.setEmpPassword(password);
            }

        return userdto;
        }
        catch(Exception e){
            e.printStackTrace();
        }
        finally{
            try{
                rs.close();
                statement.close();
                conn.close();
            }
            catch(Exception e1){
                e1.printStackTrace();
            }
        }
        return userdto;
    }
}

DTO类

package com.Test.dto;

public class UsernameDTO {
    private String empPassword;

    public String getEmpPassword() {
        return empPassword;
    }

    public void setEmpPassword(String empPassword) {
        this.empPassword = empPassword;
    }
}

DBUtil类(工具类)

package com.Test.Util;

import java.sql.Connection;
import java.sql.DriverManager;

public class DBUtil {
    public static Connection getConnection(){
        try{
            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
            Connection conn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=HappyDB;user=sa;password=123456");
            return conn;
        }
        catch (Exception e) {

        }
        return null;
    }
}

MyQuestion

  1. 单击“找回密码”按钮,无论三个框输入什么,都弹出“账号或密保或密保答案有误!”
  2. 不知道怎么在一个JLabel中显示员工密码
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值