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

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

下面是注册系统的完整代码

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);
		//设置组件大小和位置
		//括号内分别为x坐标,y坐标,宽,高
		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); 
	}
	@Override
	public void actionPerformed(ActionEvent e1) {
		// TODO Auto-generated method stub
		if(e1.getSource()==jb1) {//点击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 {//点击jb2
			//new login();
			//dispose();
			//由于本段代码只是注册代码,所以将登陆的跳转注释了
			//后面会有整个完整代码
		}
	}
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		new zhuce();
	}
}

代码运行截图:

运行的界面:
在这里插入图片描述
账号或密码为空时,注册失败:
在这里插入图片描述
在这里插入图片描述
两次密码不相同时,注册失败:
在这里插入图片描述
账号已经被人注册时,注册失败:
在这里插入图片描述
注册成功:
在这里插入图片描述

如有错误
欢迎指出

下一篇:java对mysql的简单操作的综合运用——登录系统

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值