本篇博客是java对mysql的简单操作的综合运用——登录系统、java对mysql的简单操作的综合运用——注册系统、java对mysql的简单操作的综合运用——修改密码系统的整合。
因为使用的是数据库中的数据,故代码中会有很多代码是有关数据库的,如有疑问,最下方传送门。

整合后的代码共四个界面,分别是登录界面注册界面菜单界面修改密码界面

登录界面

登录界面在原来的基础上设置了用户密码的隐私保护,并且给按钮设置了页面跳转。

代码如下(注:dispose()的作用是关闭当前的界面)

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPasswordField;
import javax.swing.JTextField;public class login 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("登录");JButton jb2=new JButton("注册");JLabel jl1=new JLabel("账号:");JLabel jl2=new JLabel("密码:");JTextField jt1=new JTextField();JPasswordField jt2=new JPasswordField ();public login() {//jt2.setEchoChar((char)0);//密码可视jt1.setBounds(90, 48, 180, 25);jt2.setBounds(90, 98, 180, 25);jl1.setBounds(44, 42, 70, 35);jl2.setBounds(44, 92, 70, 35);jb1.setBounds(60, 150, 70, 35);jb2.setBounds(190, 150, 70, 35);this.add(jb1);this.add(jl1);this.add(jl2);this.add(jt1);this.add(jt2);this.add(jb2);jb1.addActionListener(this);jb2.addActionListener(this);this.setTitle("login");this.setSize(350,250);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 stubnew login();}@Overridepublic void actionPerformed(ActionEvent e1) {// TODO Auto-generated method stubif(e1.getSource()==jb1) {if(jt1.getText().equals("")||jt2.getText().equals("")) {JOptionPane.showMessageDialog(null, "账号或密码不能为空", "警告",JOptionPane.ERROR_MESSAGE);}else {Connection conn = null;Statement stmt = null;try {Class.forName(JDBC_DRIVER);conn = DriverManager.getConnection(DB_URL,USER,PASS);stmt = conn.createStatement();String sql;sql = "SELECT * FROM login";ResultSet rs = stmt.executeQuery(sql);int pd=0;while(rs.next()){// 通过字段检索String id  = rs.getString("id");String password = rs.getString("password");if(id.equals(jt1.getText())&&password.equals(jt2.getText())) {JOptionPane.showMessageDialog(null, "账号密码正确,登陆成功!", "提示",JOptionPane.INFORMATION_MESSAGE );pd=1;new menu(id);dispose();//页面跳转break;}              }if(pd==0) {JOptionPane.showMessageDialog(null, "账号或密码错误", "警告",JOptionPane.ERROR_MESSAGE);}// 完成后关闭rs.close();stmt.close();conn.close();}catch(SQLException se){// 处理 JDBC 错误se.printStackTrace();}catch(Exception e){// 处理 Class.forName 错误e.printStackTrace();}finally{// 关闭资源try{if(stmt!=null) stmt.close();}catch(SQLException se2){}// 什么都不做try{if(conn!=null) conn.close();}catch(SQLException se){se.printStackTrace();}}}}else { new zhuce();dispose();}}
}

界面截图

注册界面

注册界面与之前的代码相比没有做太大的改变。
代码如下(注:dispose()的作用是关闭当前的界面)

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.*;
public class zhuce 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("确定");JButton jb2=new JButton("返回");JLabel jl1=new JLabel("账号:");JLabel jl2=new JLabel("密码:");JLabel jl3=new JLabel("确认密码:");JTextField jt1=new JTextField();JTextField jt2=new JTextField();JTextField jt3=new JTextField();public zhuce() {this.add(jb1);this.add(jb2);this.add(jl1);this.add(jl2);this.add(jl3);this.add(jt1);this.add(jt2);this.add(jt3);jt1.setBounds(90, 18, 180, 25);jt2.setBounds(90, 68, 180, 25);jt3.setBounds(90, 118, 180, 25);jl1.setBounds(44, 12, 70, 35);jl2.setBounds(44, 62, 70, 35);jl3.setBounds(30, 112, 70, 35);jb1.setBounds(60, 160, 70, 35);jb2.setBounds(190, 160, 70, 35);jb1.addActionListener(this);jb2.addActionListener(this);this.setTitle("账号注册");this.setSize(350,250);this.setDefaultCloseOperation(this.EXIT_ON_CLOSE); this.setLocationRelativeTo(null); this.setLayout(null);this.setResizable(false);this.setVisible(true); }@Overridepublic void actionPerformed(ActionEvent e1) {// TODO Auto-generated method stubif(e1.getSource()==jb1) {if(jt1.getText().length()==0) {JOptionPane.showMessageDialog(null, "账号不能为空", "警告",JOptionPane.ERROR_MESSAGE);}else if(jt2.getText().length()==0||jt3.getText().length()==0) {JOptionPane.showMessageDialog(null, "密码不能为空!", "警告",JOptionPane.ERROR_MESSAGE);}else if(!jt2.getText().equals(jt3.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";ResultSet rs = stmt.executeQuery(sql);int pd=0;while(rs.next()){// 通过字段检索String id  = rs.getString("id");if(id.equals(jt1.getText())) {JOptionPane.showMessageDialog(null, "账号已被注册,请重新输入!", "警告",JOptionPane.ERROR_MESSAGE);pd=1;break;}}if(pd==0) {sql="INSERT INTO login VALUES(?,?)";ps=conn.prepareStatement(sql);ps.setString(1, jt1.getText());ps.setString(2, jt2.getText());if(ps.executeUpdate()!=0) {JOptionPane.showMessageDialog(null, "账号注册成功!", "提示",JOptionPane.INFORMATION_MESSAGE );new login();dispose();}}// 完成后关闭rs.close();stmt.close();conn.close();}catch(SQLException se){// 处理 JDBC 错误se.printStackTrace();}catch(Exception e){// 处理 Class.forName 错误e.printStackTrace();}finally{// 关闭资源try{if(stmt!=null) stmt.close();}catch(SQLException se2){}// 什么都不做try{if(conn!=null) conn.close();}catch(SQLException se){se.printStackTrace();}}}}else {new login();dispose();}}public static void main(String[] args) {// TODO Auto-generated method stubnew zhuce();}
}

界面截图

菜单界面

菜单界面做了传参处理,登录成功后会将用户名传到当前界面,并在Label中显示。
代码如下(注:dispose()的作用是关闭当前的界面)

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class menu extends JFrame implements ActionListener{JButton jb1=new JButton("修改密码");JButton jb2=new JButton("切换用户");JLabel jl1=new JLabel();String user_id;public menu(String id) {user_id=id;jl1.setText("用户:"+id);this.add(jl1);this.add(jb1);this.add(jb2);jl1.setBounds(120,20,100,30);jb1.setBounds(110, 60, 100, 50);jb2.setBounds(110, 130, 100, 50);jb1.addActionListener(this);jb2.addActionListener(this);this.setTitle("菜单");this.setSize(350,250);this.setDefaultCloseOperation(this.EXIT_ON_CLOSE); this.setLocationRelativeTo(null); this.setLayout(null);this.setResizable(false);this.setVisible(true); }@Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stubif(e.getSource()==jb1) {new password(user_id);dispose();}else {new login();dispose();}}
}

界面截图

修改密码界面

修改密码界面做了传参处理,将用户名传到修改密码界面,并在TextField 里面显示,且那个TextField 设置为不可编辑。
代码如下(注:dispose()的作用是关闭当前的界面)

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("确定");JButton jb2=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();String user_id;public password(String id) {user_id=id;//添加组件this.add(jb1);this.add(jb2);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(80, 250, 70, 35);jb2.setBounds(180, 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);jt1.setText(user_id);jt1.setEditable(false);jb1.addActionListener(this);jb2.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); }@Overridepublic void actionPerformed(ActionEvent e1) {// TODO Auto-generated method stubif(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 );new menu(user_id);dispose();}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();}}}}else {new menu(user_id);dispose();}}
}

界面截图

如有错误
欢迎指出

附:
java对mysql的简单操作——增加数据
java对mysql的简单操作——删除数据
java对mysql的简单操作——修改数据
java连接mysql5.1教程(查询数据)
下一篇:用JAVA制作小游戏——推箱子(一)

文件下载链接:

csdn下载链接:点击此处
百度网盘链接关注公众号回复java综合运用
公众号链接点击这里跳转

java对mysql的简单操作的综合运用——登录+注册+修改密码相关推荐

  1. java对mysql的简单操作的综合运用——登录系统

    本篇博客运用到: java连接mysql数据库连接(数据搜索) 下面是登录系统的完整代码 import java.awt.event.ActionEvent; import java.awt.even ...

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

    本篇博客运用到: java连接mysql数据库连接 java对mysql的简单操作--修改数据 下面是修改密码系统的完整代码 import java.awt.event.ActionEvent; im ...

  3. java对mysql的简单操作的综合运用——注册系统

    本篇博客运用到: java连接mysql数据库连接 java对mysql的简单操作--增加数据 下面是注册系统的完整代码 import java.awt.event.ActionEvent; impo ...

  4. java对mysql的简单操作——增删改查的总结

    增删改查的详细内容可以点击以下链接: java对mysql的简单操作--增加数据 java对mysql的简单操作--删除数据 java对mysql的简单操作--修改数据 java连接mysql5.1教 ...

  5. java对mysql的简单操作——增加数据

    java连接mysql5.1教程(含代码)+ 查询数据 下面是数据添加片段的代码 Connection conn = null; Statement stmt = null; PreparedStat ...

  6. java对mysql的简单操作——删除数据

    java连接mysql5.1教程(含代码)+ 查询数据 相关文章推荐: java对mysql的简单操作--增加数据 下面是数据删除片段的代码 Connection conn = null; State ...

  7. 【php】基于php+mysql 简单的登录注册修改密码系统

    对于php和mysql的连接在许多blog上都有说明,为了将mysql中的查询,修改,插入等操作掌握,本文介绍了一下如何采用mysql做一个登录注册修改密码的网页. 其中, 1.登录-即为对数据库中的 ...

  8. mysql 空间数据操作,MySQL 空间数据 简单操作

    在做的项目中需要,自己绘制区域图形,并存储起来,后面还有更新的需要,存文件不方面,想到现在数据库都支持空间数据库. 现在用的就是 MySQL ,就继续用 MySQL 来存储.管理空间数据.下面就做一些 ...

  9. Java+Jsp+Mysql实现简单在线图书推荐系统 个性化图书推荐系 java实现基于用户的协同过滤推荐算法 源代码下载 算法实现 Spring+Struts+Hibernate(SSH)开发框架

    Java+Jsp+Mysql实现简单在线图书推荐系统 个性化图书推荐系统(基于用户的协同过滤推荐算法) 一.项目简介 1.开发工具和实现技术 MyEclipse10,jdk1.7,mysql5.5,t ...

最新文章

  1. 数据库跟尾过多的错误,能够的原因阐发及处置惩罚设备
  2. OpenSUSE 15.0安装教程
  3. 《从0到1学习Flink》—— 介绍Flink中的Stream Windows
  4. 音视频技术开发周刊 59期
  5. 【设计模式】单例模式 Singleton Pattern
  6. 前后端分离架构一直没机会实战?1周完成Vue+Core WebApi移动商城实战(含源码)!...
  7. mac使用的正确操作与注意事项(人体工程学)
  8. 微课|玩转Python轻松过二级(2.1.4节):列表、元组、字典、集合概述
  9. Redis 3.2.8 安装与配置
  10. C#中的换行符、回车
  11. b站视频解析php,B站视频解析套路
  12. 计算机函数公式法计算出总分的式子,excel计算百分比公式的用法
  13. trajan算法(离线做法) LCA详解
  14. removeclass 传入两个类_jQuery源码解读之removeClass()方法分析
  15. OTN关联开销(电层开销)OTU开销ODU开销OPU开销
  16. 维生素C(抗坏血酸)摄入过多有啥后果?
  17. c语言hypot函数,hypot ( )【C语言库函数源代码】
  18. POJ 1066 Treasure
  19. 国内小程序生态服务平台即速应用完成5000万元A+轮融资...
  20. 蓝桥杯真题系列:第十一届蓝桥杯C语言B组集锦

热门文章

  1. TurboMail打造雀氏(中国)日用品邮件系统
  2. 数据库索引如何工作?原理
  3. ZooKeeper 集群为啥最好奇数台?
  4. 浅谈linux IO
  5. MongoDB 新功能介绍-Change Streams
  6. ZooKeeper(二) idea中使用Java操作zookeeper
  7. python 数据类_python数据类
  8. linux cd 一些用法
  9. RocketMQ的组织架构和基本概念,Dledger高可用集群架构原理
  10. 内核怎么帮程序建立连接的