首页 > 数据库 >软件设计之C/S结构连接数据库实现登录功能

软件设计之C/S结构连接数据库实现登录功能

时间:2023-10-23 12:45:00浏览次数:45  
标签:java 登录 软件设计 数据库 private add import new public

界面展示

具体代码

//DBUtil.java
package org.example;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class DBUtil {
    public static Connection getConnection() throws ClassNotFoundException, SQLException {
        Class.forName("com.mysql.cj.jdbc.Driver");

        Connection connection= DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root","20214063");

        return connection;
    }
}

//LoginForm.java
package org.example;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.SQLException;

public class LoginForm extends JFrame {
    //定义系统的各个组件
    private static final long serialVersionUID = 5475179439752076273L;
    private Container container = getContentPane();
    private JLabel userLabel = new JLabel("用 户:");
    private JTextField usernameField = new JTextField();
    private JLabel passLabel = new JLabel("密 码:");
    private JPasswordField passwordField = new JPasswordField();
    private JButton okBtn = new JButton("确定");
    private JButton cancelBtn = new JButton("清空");
    public void init(){
        setTitle("系统登录功能");
        setBounds(600,200,350,180);
        container.setLayout(new BorderLayout());
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        //设置让窗口可见
        setVisible(true);

        JPanel fieldPanel = new JPanel();
        fieldPanel.setLayout(null);
        userLabel.setBounds(50, 20, 50, 20);
        passLabel.setBounds(50, 60, 50, 20);
        fieldPanel.add(userLabel);
        fieldPanel.add(passLabel);
        usernameField.setBounds(110, 20, 160, 20);
        passwordField.setBounds(110, 60, 160, 20);
        fieldPanel.add(usernameField);
        fieldPanel.add(passwordField);
        container.add(fieldPanel, "Center");

        //按钮组件部分
        JPanel buttonPanel = new JPanel();
        buttonPanel.setLayout(new FlowLayout());
        buttonPanel.add(okBtn);
        buttonPanel.add(cancelBtn);
        container.add(buttonPanel, "South");
        listerner();
    }

    //登录功能的实现
    public void listerner() {
        okBtn.addActionListener(
                new ActionListener() {
                    @Override
                    public void actionPerformed(ActionEvent e) {
                        try {
                            String username = usernameField.getText();
                            String password = String.valueOf(passwordField.getPassword());
                            //判断是否在数据库中存在这样一条信息
                            UserDAO dao=new UserDAO();
                            boolean a=dao.findUser(username.toString(),password);

                            if(a){
                                JOptionPane.showMessageDialog(null, "登录成功");
                            }else{
                                JOptionPane.showMessageDialog(null, "登录失败");
                            }
                        } catch (ClassNotFoundException | SQLException ex) {
                            throw new RuntimeException(ex);
                        }
                    }
                });

        //清空输入信息
        cancelBtn.addActionListener(
                new ActionListener() {
                    @Override
                    public void actionPerformed(ActionEvent e) {
                        usernameField.setText("");
                        passwordField.setText("");
                    }
                });
    }
}

//UserDAO.java
package org.example;

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

public class UserDAO {
    public boolean findUser(String userName,String password) throws SQLException, ClassNotFoundException {
        Connection connection=DBUtil.getConnection();
        PreparedStatement psmt=connection.prepareStatement("select * from design where id=?");
        psmt.setString(1,userName);
        ResultSet rs=psmt.executeQuery();
        String pa="";
        int count=0;
        while(rs.next()){
            pa=rs.getString(2);
            if(pa.equals(password)){
                count=1;
            }else{
                count=0;
            }
        }

        rs.close();
        psmt.close();
        connection.close();

        if(count!=0){
            return true;
        }else{
            return false;
        }
    }
}

//Main.java
package org.example;

public class Main {
    public static void main(String[] args) {
        LoginForm loginForm=new LoginForm();
        loginForm.init();
    }
}

标签:java,登录,软件设计,数据库,private,add,import,new,public
From: https://www.cnblogs.com/liuzijin/p/17782147.html

相关文章

  • mysql数据库类型有哪些
    mysql数据库类型有哪些mysql数据库类型有:1、整数类型;2、浮点数类型;3、定点数类型;4、位类型BIT;5、日期与时间类型;6、文本字符串类型;7、ENUM类型;8、SET类型;9、二进制字符串类型;10、JSON类型;11、空间类型。其中,整数类型一共有5种。1、整数类型整数类型一共有5种,包括TINYI......
  • Oracle数据库表空间和角色/用户 权限
    问题1.2.3.https://www.iteye.com/blog/czmmiao-1304934这个特别好4.5.6.https://www.51cto.com/article/158937.html表空间7.创建用户8.表空间9.oracle体系结构详解10.https://zhuanlan.zhihu.com/p/100390025实例、表空间、用户之间的关系11.https://docs.oracle......
  • PowerBuilder读取硬盘图片显示出来并保存到数据库中
    PowerBuilder读取硬盘图片显示出来并保存到数据库中 数据库是SQLSERVER 表:blobtab 列: id,int,主键自增 blobdata,image,二进制内容可空 注:PB中存储二进制数据和读取二进制数据只能用updateblob语句和selectblob语句  显示图片到控件里的代码://显......
  • jmeter操作数据库
    数据库连接配置组件:参数配置:数据库请求配置组件:请求配置: ......
  • 使用mimipenguin实现从当前 Linux 用户转储登录密码
    另外,它还支持如:VSFTPd(活跃的FTP客户端连接)、Apache2(活跃的/旧的HTTP基础认证会话,但是这需要Gcore),还有openssh-server(活跃的SSH链接,需用sudo 命令)。重要的是,它逐渐被移植到其他语言中,以支持所有可想到的以后可以利用的情况。mimipenguin是如何工作的?要理解mimipengui......
  • 每日总结(c/s架构简单的登录模块)
    单一职责原则实例——登录模块 登录模块在实际项目开发中很常见,请按照教材28页利用单一职责原则重构后的类图实现这一模块。1、新建 javaproject 2、导入jar包mysql-connector-java-8.0.22.jar    *此处注意jar包的版本不能过低,否则数据库连接失败3、......
  • 数据库——基本概念
    1、什么是数据库?数据库,DataBase,简称db,存储数据的仓库。按照一定格式存储数据的一些文件的组合。2、什么是数据库管理系统?数据库管理系统,DataBaseManagementSystem,简称DBMS,管理数据库的系统,可以对数据库中的数据进行增删改查。常用的数据库管理系统有:Mysql、Oracle、SqlServer......
  • django从配置文件中读取数据库信息
    创建配置文件my.cnf[client]database=django_dbuser=rootpassword=123456host=127.0.0.1port=3306settings.pyDATABASES={'default':{'ENGINE':'django.db.backends.sqlite3','OPTIONS':{'read_default_fi......
  • 数据库基础之有损连接、无损连接
    判断有损连接还是无损连接跳转到这个网址</ahref>(这个网址里面讲的特别清楚~~~)......
  • 数据库基础学习过程中遇到的一些基础知识
    1、E-R图它是结构化分析过程的工具,用于数据建模,将现实世界中的十五抽象成信息世界里的数据;2、数据库设计包括--概念设计、逻辑设计、物理设计概念设计:用户角度、E-R图;逻辑设计:E-R图转换成关系模式;物理设计:物理存储方法、索引等;3、数据库系统的三级模式概念模式(也叫做模式、......