javaswing语句 java连接mysql,简单登录框实现

简介: javaswing语句 java连接mysql,简单登录框实现

第一步,eplicse导入驱动包,必须要对应版本的

写入mysql语句在数据库中

DROP TABLE IF EXISTS `table`;
CREATE TABLE `table` (
  `name` char(8) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `password` int DEFAULT NULL,
  PRIMARY KEY (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3;
-- ----------------------------
-- Records of table
-- ----------------------------
INSERT INTO `table` VALUES ('admin', '666');
INSERT INTO `table` VALUES ('gg', '123');
INSERT INTO `table` VALUES ('yy', '123');


二,使用了两个类dd 和 dj

dj-----mysql连接java,并且设置compare函数,用于判断传入的值与数据库里面的值是否一致

package denglu;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement; 
import javax.swing.JOptionPane;
public class dj {
    Connection con = null;
    Statement statement = null;
    ResultSet res = null;
    String driver = "com.mysql.cj.jdbc.Driver";
    String url = "jdbc:mysql://localhost:3306/denglu?useUnicode=true&characterEncoding=UTF-8&serverTimezone=CST";//denglu是自己创的mysql库名
    String name = "root";
    String passwd = "123456";
    public dj() {
        try {
            Class.forName(driver).newInstance();
            con = DriverManager.getConnection(url, name, passwd);
            statement = con.createStatement();
        } catch (ClassNotFoundException e) {
            System.out.println("对不起,找不到这个Driver");
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    public boolean compare(String name, String password) {
        boolean m = false;
        String sql = "select password from table where name=\"" + name + "\"";//自己在denglu这个库里面创建table表并写入mysql语句
        System.out.println("sql="+sql);
        try {
            res = statement.executeQuery(sql);
            System.out.println("res="+res);
            if (res.next()) {
                String pa = res.getString(1);
                System.out.println(pa + " " + password);
                if (pa.equals(password)) {
                    m = true;
                } else {
                    JOptionPane.showMessageDialog(null, "密码错误!");
                }
            } else {
                JOptionPane.showMessageDialog(null, "用户名不存在!");
            }
            res.close();
            con.close();
            statement.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return m;
    }
}

dd--------用于布局,实现点击函数

package denglu;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class dd extends JFrame  {
     JPanel pan = new JPanel();
     JLabel namelab = new JLabel("用户名");
     JLabel passlab = new JLabel("密    码");
    JTextField nametext = new JTextField();
    JPasswordField passtext = new JPasswordField();
    public JButton denglu = new JButton("登录");
    public dd() {
        Font font = new Font("楷体", Font.BOLD, 12);
        super.setTitle("欢迎登录本系统");
        pan.setLayout(null);
        namelab.setBounds(20, 20, 60, 30);
        nametext.setBounds(90, 20, 140, 30);
        passlab.setBounds(20, 60, 60, 30);
        passtext.setBounds(90, 60, 140, 30);
        denglu.setBounds(100, 120, 90, 20);//距离x,距离y,宽,长
        pan.add(namelab);
        pan.add(nametext);
        pan.add(passlab);
        pan.add(passtext);
        pan.add(denglu);
        passtext.setFont(font);
        super.add(pan);
        super.setSize(300, 250);
        super.setVisible(true);
        denglu.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {//监听
               denglu();
            }
        });
    }
    public static void main(String[] args) {
        new dd();//执行布局
    }
    //登录按钮的事件处理函数
    public void denglu() {
        dj dl = new dj();
        String username = nametext.getText();
        String password = passtext.getText();
        if (dl.compare(username, password)) {
            JOptionPane.showMessageDialog(null, "登录成功!");
            super.setVisible(false);
        }
    }
    }

12.1.png12.2.png

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
SQL 关系型数据库 MySQL
排除通过IP访问MySQL时出现的连接错误问题
以上步骤涵盖了大多数遇到远程连接 MySQL 数据库时出现故障情形下所需采取措施,在执行每个步骤后都应该重新尝试建立链接以验证是否已经解决问题,在多数情形下按照以上顺序执行将能够有效地排除并修复大多数基本链接相关故障。
721 3
|
SQL Java 关系型数据库
Java连接MySQL数据库环境设置指南
请注意,在实际部署时应该避免将敏感信息(如用户名和密码)硬编码在源码文件里面;应该使用配置文件或者环境变量等更为安全可靠地方式管理这些信息。此外,在处理大量数据时考虑使用PreparedStatement而不是Statement可以提高性能并防止SQL注入攻击;同时也要注意正确处理异常情况,并且确保所有打开过得资源都被正确关闭释放掉以防止内存泄漏等问题发生。
534 13
|
SQL 关系型数据库 MySQL
MySQL数据库连接过多(Too many connections)错误处理策略
综上所述,“Too many connections”错误处理策略涉及从具体参数配置到代码层面再到系统与架构设计全方位考量与改进。每项措施都需根据具体环境进行定制化调整,并且在执行任何变更前建议先行测试评估可能带来影响。
1999 11
|
SQL 监控 关系型数据库
查寻MySQL或SQL Server的连接数,并配置超时时间和最大连接量
以上步骤提供了直观、实用且易于理解且执行的指导方针来监管和优化数据库服务器配置。务必记得,在做任何重要变更前备份相关配置文件,并确保理解每个参数对系统性能可能产生影响后再做出调节。
998 11
|
存储 关系型数据库 MySQL
修复.net Framework4.x连接MYSQL时遇到utf8mb3字符集不支持错误方案。
通过上述步骤大多数情况下能够解决由于UTF-encoding相关错误所带来影响,在实施过程当中要注意备份重要信息以防止意外发生造成无法挽回损失,并且逐一排查确认具体原因以采取针对性措施解除障碍。
807 12
|
人工智能 Java 关系型数据库
Java的时间处理与Mysql的时间查询
本文总结了Java中时间与日历的常用操作,包括时间的转换、格式化、日期加减及比较,并介绍了MySQL中按天、周、月、季度和年进行时间范围查询的方法,适用于日常开发中的时间处理需求。
287 0
|
负载均衡 算法 关系型数据库
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
本文聚焦 MySQL 集群架构中的负载均衡算法,阐述其重要性。详细介绍轮询、加权轮询、最少连接、加权最少连接、随机、源地址哈希等常用算法,分析各自优缺点及适用场景。并提供 Java 语言代码实现示例,助力直观理解。文章结构清晰,语言通俗易懂,对理解和应用负载均衡算法具有实用价值和参考价值。
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
|
数据采集 Java 数据安全/隐私保护
Java爬虫——模拟登录知乎
  登录界面,首先随意输入一个账号,登录查看发送表单的请求    可以发现请求是Post : https://www.zhihu.com/login/phone_num 发送的表单是 _xsrf: password: 密码 无需加密captcha: 验证码 无需验证码时为不用此...
1837 0
|
12月前
|
JSON 网络协议 安全
【Java】(10)进程与线程的关系、Tread类;讲解基本线程安全、网络编程内容;JSON序列化与反序列化
几乎所有的操作系统都支持进程的概念,进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位一般而言,进程包含如下三个特征。独立性动态性并发性。
606 1
|
12月前
|
JSON 网络协议 安全
【Java基础】(1)进程与线程的关系、Tread类;讲解基本线程安全、网络编程内容;JSON序列化与反序列化
几乎所有的操作系统都支持进程的概念,进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位一般而言,进程包含如下三个特征。独立性动态性并发性。
529 1

推荐镜像

更多