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.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.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();
	JTextField jt2=new JTextField();
	public login() {
		//设置各个组件的位置和大小
		//括号内分别为x坐标,y坐标,宽,高
		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 stub
		new login();
	}
	@Override
	public void actionPerformed(ActionEvent e1) {
		// TODO Auto-generated method stub
		if(e1.getSource()==jb1) {//点击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;//账号密码匹配成功
			                	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();*/}
		//注册页面的内容在下一篇博客,这段代码没有,所以注释了
		//后面会有整个完整代码
	}
}

代码运行截图:

运行的界面:
在这里插入图片描述
账号或密码为空时,登陆失败:
在这里插入图片描述
密码错误时,登陆失败:
在这里插入图片描述
密码正确时,登陆成功:
在这里插入图片描述

如有错误
欢迎指出

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

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值