JavaSwing图形界面连接数据库实现登录

先看这个👇👇👇

https://blog.csdn.net/m0_49902448/article/details/114442083

搞过注册之后, 登录就差不多了哈哈, 在注册的基础上写登录(注册可以点开…)

  • 开始了, 第一步, 检查数据库判断账号是否存在并且密码是否匹配, 如果匹配, 则登录, 如果不匹配, 则提示账号或者密码输入错误或者不存在, 代码如下
package JDBC;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

/*
检查账号密码是否对, 实现登录
 */
public class EqualIdPas {
    public static int idPassword(String id, String password){
        Connection conn = null;
        PreparedStatement st = null;
        ResultSet rs = null;
        try {
            conn = JdbcUtils_DBCP.getConnection();

            String sql = "select * from users where id=? and password =?";

            st = conn.prepareStatement(sql);//预编译sql, 先写sql, 然后不执行
            //手动给参数赋值
            st.setString(1,id);//传入id
            st.setString(2,password);//传入password

            rs = st.executeQuery();

            while (rs.next()){
                return 1;//如果数据库有这个数据, 则返回数字1
            }
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }finally{
            JdbcUtils_DBCP.release(conn, st,null);
        }
        return 2;//如果数据库没有这个数据, 则返回数字2
    }
}
  • 图形化界面梳理, 需要登录界面, 登录失败界面, 登陆后界面, 准备完毕后再开始写监听器

在这里插入图片描述

如图, demo03是登录界面, demo05是登录成功界面, demo17是登录失败界面

  • 监听器, 需要传入一个框体对象, 账号输入框对象, 密码输入框对象, 获取密码框文本信息用的是getPassword, 跟注册那个差不多, 看代码吧
package listener;

import JDBC.EqualIdPas;
import hello_world.demo05bigface;
import hello_world.demo17failLogin;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

/*
登录
 */
public class loginListener implements ActionListener {

    private javax.swing.JTextField jt;//账号输入框对象
    private javax.swing.JPasswordField jp;//密码输入框对象
    private javax.swing.JFrame login;//定义一个窗体对象

    public loginListener(javax.swing.JFrame login,javax.swing.JTextField jt,javax.swing.JPasswordField jp) {
        this.login=login;//获取登录界面
        this.jt=jt;//获取登录界面中的账号输入框对象
        this.jp=jp;//获取登录界面中的密码输入框对象
    }

    @Override
    public void actionPerformed(ActionEvent e) {

        //利用get方法来获取账号和密码对象的文本信息,并用equal方法进行判断。最好不要用==,用==这个地方验证不过去。
        String id = jt.getText();
        String password = String.valueOf(jp.getPassword());

        int idPas = EqualIdPas.idPassword(id, password);

        if(idPas==1){
            //为1代表账号密码输入正确, 允许登录, 打开登录成功界面
            demo05bigface demo05bigface = new demo05bigface();
            demo05bigface.showUI();//打开登陆后
            login.dispose();//关闭登录
        }else if(idPas==2){
            //2账号密码错误, 弹出提示框
            demo17failLogin demo17failLogin = new demo17failLogin();
            demo17failLogin.showUI();//打开提示
            login.dispose();//关闭登录
        }
    }
}
  • 给登录页面的登录按钮装监听器
//首先实例化登录按钮监听类的对象,并把登录界面中账号和密码输入框的对象传给它
loginListener ll1 = new loginListener(jf, tex, pas);
//对当前窗体添加监听方法
but1.addActionListener(ll1);//监控按钮
  • 看效果
    数据库
    在这里插入图片描述
    登录666666,123456
    在这里插入图片描述
    登录成功!
    在这里插入图片描述
    再来试一个错的账号密码
    在这里插入图片描述
    结果是这样
    在这里插入图片描述
    点击[返回登录]
    在这里插入图片描述
    结束了结束了

程序猿永不向BUG低头, 加油

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值