java对mysql的简单操作的综合运用——修改密码系统

本篇博客运用到:
java连接mysql数据库连接
java对mysql的简单操作——修改数据

下面是修改密码系统的完整代码

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.*;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
public class password extends JFrame implements ActionListener{
	static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";  
	static final String DB_URL = "jdbc:mysql://localhost:3306/message";
	static final String USER = "root";
    static final String PASS = "123456";
	JButton jb1=new JButton("确定");
	JLabel jl1=new JLabel("账号:");
	JLabel jl2=new JLabel("原密码:");
	JLabel jl3=new JLabel("新密码:");
	JLabel jl4=new JLabel("确认密码:");
	JTextField jt1=new JTextField();
	JTextField jt2=new JTextField();
	JTextField jt3=new JTextField();
	JTextField jt4=new JTextField();
	public password() {
		//添加组件
		this.add(jb1);
		this.add(jt1);this.add(jt2);this.add(jt3);this.add(jt4);
		this.add(jl1);this.add(jl2);this.add(jl3);this.add(jl4);
		//设置组件位置和大小
		jb1.setBounds(130, 250, 70, 35);
		jt1.setBounds(105, 48, 180, 25);
		jt2.setBounds(105, 98, 180, 25);
		jt3.setBounds(105, 148, 180, 25);
		jt4.setBounds(105, 198, 180, 25);
		jl1.setBounds(70, 42, 70, 35);
		jl2.setBounds(57, 92, 70, 35);
		jl3.setBounds(57, 142, 70, 35);
		jl4.setBounds(44, 192, 70, 35);
		//设置窗口属性
		jb1.addActionListener(this);
		this.setTitle("修改密码");
		this.setSize(350,350);
		this.setDefaultCloseOperation(this.EXIT_ON_CLOSE); 
		this.setLocationRelativeTo(null); 
		this.setLayout(null);
		this.setResizable(false);
		this.setVisible(true); 
	}
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		new password();
	}
	@Override
	public void actionPerformed(ActionEvent e1) {
		// TODO Auto-generated method stub
		if(e1.getSource()==jb1) {
			if(jt1.getText().equals("")||jt2.getText().equals("")) {
				JOptionPane.showMessageDialog(null, "账号或原密码不能为空", "警告",JOptionPane.ERROR_MESSAGE);
			}
			else if(jt3.getText().equals("")) {
				JOptionPane.showMessageDialog(null, "请输入新的密码", "警告",JOptionPane.ERROR_MESSAGE);
			}
			else if(jt4.getText().equals("")) {
				JOptionPane.showMessageDialog(null, "请确认新的密码", "警告",JOptionPane.ERROR_MESSAGE);
			}
			else if(!jt3.getText().equals(jt4.getText())) {
				JOptionPane.showMessageDialog(null, "两次密码不相同", "警告",JOptionPane.ERROR_MESSAGE);
			}
			else {
				Connection conn = null;
				Statement stmt = null;
				PreparedStatement ps=null;
				 try{
			            Class.forName(JDBC_DRIVER);
			            conn = DriverManager.getConnection(DB_URL,USER,PASS);
			            stmt = conn.createStatement();
			            String sql;
			            sql = "SELECT * FROM login";//搜索login表
			            ResultSet rs = stmt.executeQuery(sql);
			            int pd=0;
			            while(rs.next()){
			                int id  = rs.getInt("id");//得到“id”列的值
			                String password = rs.getString("password");//得到“password”列的值
			                if(jt1.getText().equals(String.valueOf(id))) {
			                	pd=1;
			                	if(jt2.getText().equals(password)) {
			                		 try{
			                	            Class.forName(JDBC_DRIVER);
			                	            conn = DriverManager.getConnection(DB_URL,USER,PASS);
			                	            stmt = conn.createStatement();
			                	            String sql1;
			                	            sql1="UPDATE login SET password=? WHERE id=?";//向login表里修改数据
			                	            ps=conn.prepareStatement(sql1);//修改数据预处理
			                	            ps.setString(1, jt3.getText());
			                	            ps.setString(2, String.valueOf(id));
			                	        	ps.executeUpdate();//执行修改数据
			                	            ps.close();
			                	            stmt.close();
			                	            conn.close();
			                	        }catch(SQLException se){
			                	            se.printStackTrace();
			                	        }catch(Exception e){
			                	            e.printStackTrace();
			                	        }finally{
			                	            try{
			                	                if(stmt!=null) stmt.close();
			                	            }catch(SQLException se2){
			                	            }
			                	            try{
			                	                if(conn!=null) conn.close();
			                	            }catch(SQLException se){
			                	                se.printStackTrace();
			                	            }
			                	        }
			                		 JOptionPane.showMessageDialog(null, "密码修改成功!", "提示",JOptionPane.INFORMATION_MESSAGE );
			                	}
			                	else {
			                		JOptionPane.showMessageDialog(null, "原密码输入错误,请重输", "警告",JOptionPane.ERROR_MESSAGE);
			                	}
			                	break;
			                }
			            }
			            if(pd==0) {JOptionPane.showMessageDialog(null, "账号不存在,请重输", "警告",JOptionPane.ERROR_MESSAGE);}
			            rs.close();
			            stmt.close();
			            conn.close();
			        }catch(SQLException se){
			            se.printStackTrace();
			        }catch(Exception e){
			            e.printStackTrace();
			        }finally{
			            try{
			                if(stmt!=null) stmt.close();
			            }catch(SQLException se2){
			            }
			            try{
			                if(conn!=null) conn.close();
			            }catch(SQLException se){
			                se.printStackTrace();
			            }
			        }
			}
		}
	}
}

代码运行截图:

运行的界面:
在这里插入图片描述
账号或密码为空时,修改失败:
在这里插入图片描述
在这里插入图片描述
新密码为空时,修改失败:
在这里插入图片描述
确认密码为空时,修改失败:
在这里插入图片描述
两次密码输入不同时,修改失败:
在这里插入图片描述
账号不存在时,修改失败:
在这里插入图片描述
原密码错误时,修改失败:
在这里插入图片描述
密码修改成功:
在这里插入图片描述

如有错误
欢迎指出

下一篇:java对mysql的简单操作的综合运用——登录+注册+修改密码

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值