javafx+mysql实现学生信息管理系统(连接数据库实现增删改查功能)利用了SceneBuilder

2023-11-15

功能简单介绍

 因为是重新学的 花了一天写出来的 界面比较简陋 暂时还没有完善 但是功能都可以正常实现

数据库建表:可以参考格式 可以根据需要对应修改tableview中的column

这个对表没有太多要求,可以自行修改

 

首先是登陆页面

账号密码都是从数据库中获取 同时也实现了注册功能

注册的账号密码也会保存在数据库中 

然后登陆进入主页面

这是大致的系统实现 表格使用的是tableview组件 可以实现自动排序 省去了排序的麻烦。

显示信息

 添加信息

信息修改

 这里考虑到重名 所以多加了一个id限定

查找学生

 第一次做就只做了根据姓名查找 后面会完善

 删除信息

 临时做的 只做了两种删除方式

部分源代码

这是登陆界面的源代码

package com.example.studentmanage;

import javafx.fxml.FXML;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.control.PasswordField;
import javafx.scene.control.TextField;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class HelloController {
    @FXML
    private TextField user;
    @FXML
    private PasswordField password;

    @FXML
    protected void onloginbuttonclick() throws Exception {
        String id=user.getText();
        String mima=password.getText();

        String username = "用户名";
        String password = "数据库pw";
        Class.forName("com.mysql.cj.jdbc.Driver");

        String url = "jdbc:mysql://localhost:3306/login?useUnicode=true&characterEncoding=utf8&useSSL=true";
//        3.连接成功,数据库对象 Connection
        Connection connection = DriverManager.getConnection(url,username,password);
//        4.执行SQL对象Statement,执行SQL的对象
        Statement statement = connection.createStatement();
        String sql = "SELECT *FROM user;";
        ResultSet resultSet = statement.executeQuery(sql);
        boolean login=false;
        while (resultSet.next())
        {
            if (id.equals(resultSet.getString("id"))&&mima.equals(resultSet.getString("password")))
            {
                login=true;
                Main main=new Main();
                main.start(new Stage());
                
            }
        }
        if (login==false) {

            // 登陆错误时 弹出窗口
            Stage error = new Stage();
            error.setWidth(400);
            error.setHeight(300);
            StackPane p = new StackPane();
            Label l = new Label("账号或密码错误,请重新输入");
            p.getChildren().add(l);
            Scene s = new Scene(p);
            error.setScene(s);
            error.setTitle("登陆错误");
            error.showAndWait();
        }
    }
    @FXML
    protected void registeronclick() throws Exception {
        Register register=new Register();
        register.start(new Stage());
    }


}

这个是注册页面的

package com.example.studentmanage;

import javafx.fxml.FXML;
import javafx.scene.control.PasswordField;
import javafx.scene.control.TextField;

import java.sql.*;

public class RegisterController {
    @FXML
    private TextField num;
    @FXML
    private PasswordField pw;

    @FXML
    // 注册按钮
    protected void registeronclick() throws ClassNotFoundException, SQLException {
        //连接数据库插入数据
        String id=num.getText();
        String pwd=pw.getText();
        //连接数据库
        String username = "用户名";
        String password = "数据库Pw";
        Class.forName("com.mysql.cj.jdbc.Driver");
        String url = "jdbc:mysql://localhost:3306/login?useUnicode=true&characterEncoding=utf8&useSSL=true";
//        3.连接成功,数据库对象 Connection
        Connection connection = DriverManager.getConnection(url,username,password);
//        4.执行SQL对象Statement,执行SQL的对象
//        Statement statement = connection.createStatement();
        String sql = "INSERT INTO user (id,password) VALUES(?,?);";
        PreparedStatement ps = connection.prepareStatement(sql);
        ps.setString(1,id);
        ps.setString(2,pwd);
        //执行sql语句
        ps.addBatch();
        ps.executeBatch();
        System.out.println("注册成功");
        ps.close();
        connection.close();

    }
}

主页面的代码比较乱而且有点多,因为javafx是刚学的所以还请见谅。

需要源码的可以私信,共同学习交流。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

javafx+mysql实现学生信息管理系统(连接数据库实现增删改查功能)利用了SceneBuilder 的相关文章

  • 如何通过两跳 SSH 隧道使用 JProfiler

    我正在尝试将 JProfiler 连接到在我将调用的服务器上运行的 JVMremote 该服务器只能从我的工作站访问 local 通过我将调用的另一台服务器middle 我的计划是将 JProfiler 连接到remote是这样的 安装 J
  • 克隆 dom.Document 对象

    我的目的是将xml文件读入Dom对象 编辑dom对象 其中涉及删除一些节点 完成此操作后 我希望将 Dom 恢复到其原始状态 而不实际解析 XML 文件 无论如何 我可以克隆第一次解析 xml 文件后获得的 dom 对象吗 这个想法是避免一
  • MySQL Spatial CONTAINS 显示错误结果

    我的 MySQL 空间搜索有一个奇怪的行为 我在 GEOM 字段 葡萄牙边界 中创建了一个多边形 然后我尝试在内部找到一个点 发现没问题 下一次尝试是查找多边形外部的点 但查询仍返回 1 个找到的行 请帮忙 我做错了什么 为什么它会找到多边
  • Logback 配置在单行上有异常吗?

    我的日志被提取 传输并合并到 elasticsearch 中 多行事件很难跟踪和诊断 有没有办法使用收集器和正则表达式将异常行分组到单个记录中登录配置 https logback qos ch manual layouts html xTh
  • 声纳要求将这一领域定为最终目标

    我的程序中有以下代码 在与 Maven 集成后 我正在运行 SonarQube 5 对其进行代码质量检查 我面临这个错误 将此 public static processStatus 字段设为最终字段 将此 public static pr
  • MySQL max_allowed_pa​​cket 参数有什么问题?

    我需要增加 max allowed pa cket 参数 以适应一些理论上非常大的项目 如果我将此参数设置为 10M 那么与设置为 1M 或 4M 相比 我要支付什么价格 如果有的话 感谢您的任何意见 托马斯 我找到了这个解释 http w
  • 在仔细锁定但不受信任的代码上使用 Thread.stop()

    我知道Thread stop 已被弃用 并且有充分的理由 它通常不安全 但这并不意味着它是never安全 据我所知 在我想要使用它的上下文中它是安全的 而且 据我所知 我别无选择 上下文是一个两人策略游戏的第三方插件 以国际象棋为例 第三方
  • 检查对象是否为空

    我有一个链表 其中第一个节点包含空对象 表示firstNode data等于null firstNode nextPointer null firstNode previousPointer null 我想检查firstNode 是否为空
  • 什么会导致“IO错误java.net.SocketException:选择失败”?

    我的笔记本电脑上运行一个服务器程序 相同的路由器和相同的代码 它工作正常 客户端可以连接 然而 当我将工作区复制到我的电脑并运行它时 我得到了这样的废话 IO错误java net SocketException 选择失败 这是代码 publ
  • 使用 Jboss7 加载资源返回 null

    如何使用Jboss7 1从java代码中加载图像等资源 这曾经与 Jboss4 一起使用 this getClass getClassLoader getResourceAsStream myapp includes images imag
  • 为什么这段代码可以在 Java 7 中运行,而不能在 Java 8 中运行?

    我目前使用 IDE Eclipse 版本 Neon 2 Release 4 6 2 和版本 java Version 8 Update 131 在此代码中 IDE 给出错误 类型不匹配 无法从字节转换为整数 Integer i byte 1
  • 抛出 UnsupportedOperationException

    因此其中一种方法的描述如下 public BasicLinkedList addToFront T data 该操作无效 对于排序列表 将生成 UnsupportedOperationException 使用消息 排序列表的操作无效 我的代
  • 使用mapstruct映射不同类型列表的元素

    我们正在映射一个对象 该对象具有一个对象列表 这些对象都实现了父接口 但可能具有不同的实现 但当我们映射列表时 似乎只有来自 ParentClass 的值被映射 而不是来自子类的值 但直接映射子进程就可以了 public class Par
  • 当 javadoc 未附加到依赖项时,如何将 javadoc 引用到 Maven 的 eclipse 插件中的依赖项

    我在开发中使用 Eclipse Maven 和 Java 我使用 Maven 下载依赖项 jar 文件和 javadoc 如果可用 并使用 Maven 的 eclipse 插件为 Eclipse 生成 project 和 classpath
  • 如何在 Spring GCP 中订阅多个 Google PubSub 项目?

    我想在 Spring Boot 应用程序中订阅多个 Google Cloud PubSub 项目 阅读完相关问题后如何使用 Spring Cloud 在一个 Spring Boot 应用程序中连接 配置两个 pubsub gcp 项目 ht
  • 在Java中,为什么某些变量首先需要初始化,而其他变量只需要声明?

    我试图更深入地理解我是否遗漏了一些关于 Java 何时需要变量初始化与简单声明的理解 在以下代码中 不需要为变量 row 赋值即可编译和运行 但变量 column 则需要赋值 注意 该程序没有任何用处 它已被修剪为仅显示此问题所需的内容 以
  • 我的代码线程不安全吗?

    我编写了代码来理解 CyclicBarrier 我的应用程序模拟选举 每轮选出得票少的候选人 该候选人从竞争中淘汰以获得胜利 source class ElectoralCommission public volatile boolean
  • Android 中的自定义相机应用程序问题 - 旋转 270、拉伸捕获视图且未获取所有功能

    我从代码中得到了帮助https github com josnidhin Android Camera Example https github com josnidhin Android Camera Example 但面临一些问题 例如
  • 仅当用户开始输入时清除 JavaFX TextField 中的提示文本

    默认行为是当字段获得焦点时 字段中的提示文本将被删除 那是标记在场上的时候 是否可以配置文本字段 以便仅在用户开始输入时删除提示文本 否则 我需要在每个文本字段旁边 上方添加一个标签 以描述其中的值 我知道它有点旧 但我自己也需要它 这仍然
  • Java GridBagConstraints gridx 和 gridy 不工作?

    我正在尝试使用gridx and gridy定位我的按钮的约束 但它们不起作用 如果我改变gridx and gridy变量 什么也没有发生 如果我将填充更改为GridBagConstraints to NONE 仍然不行 我在这里错过了什

随机推荐

  • Java并发编程实战——并发容器之ConcurrentHashMap(JDK 1.8版本)

    文章目录 ConcurrentHashmap简介 从关键属性及类上来看ConcurrentHashMap的结构 put 方法管中窥豹 CAS关键操作 ConcurrentHashmap简介 在使用HashMap时在多线程情况下扩容会出现CP
  • Python3,10行代码竟然让URL变短了,没想到还可以这么玩。

    让URL变短的方法 1 引言 2 代码实战 2 1 定义 2 2 常用函数 2 3 示例 3 总结 1 引言 小屌丝 鱼哥 有没有什么方法 能让url变短一点 小鱼 我去 url怎么惹你了 你让它变短 小屌丝 没有了 我就是觉得url太长了
  • 西门子fifo_西门子官方开发的LGF库全中文解读,重磅推荐

    Hello 欢迎大家来到 西家大书 这里可能是西门子最内部的知识分享平台 众所周知 TIA Portal STEP 7 具有一个功能强大的LGF全局库 它可以计算随机数 最大值 最小值 平均值 实现搜索功能 计算日出日落时间等等 但关于LG
  • @符号的用法

    代码中 符号有时候会在有些代码中遇到 其具体有什么作用呢 主要用法 限定作用 用来限定字符串 具体而言实际上就是表示字符串中的 字符不再认为是转义标志 而就是 符号本身 常见的用法是如果我们写一个文件所处的路径 比如 D 文本文件 路径下的
  • iframe如何发送请求_如何优雅地处理前端异常?

    前端一直是距离用户最近的一层 随着产品的日益完善 我们会更加注重用户体验 而前端异常却如鲠在喉 甚是烦人 一 为什么要处理异常 异常是不可控的 会影响最终的呈现结果 但是我们有充分的理由去做这样的事情 增强用户体验 远程定位问题 未雨绸缪
  • Java 程序员学习中各阶段的建议

    对于Java程序猿学习的建议 这一部分其实也算是今天的重点 这一部分用来回答很多群里的朋友所问过的问题 那就是LZ你是如何学习Java的 能不能给点建议 今天LZ是打算来点干货 因此咱们就不说一些学习方法和技巧了 直接来谈每个阶段要学习的内
  • Java中的流

    文件管理 Java语言使用File类对文件和目录进行操作 查找文件时需要实现FilenameFilter或FileFilter接口 另外 读写文件内容可以通过FileInputStream FileOutputStream FileRead
  • c提高学习——(字符串强化_查找字串)实现strstr

    先简单的看一下strstr的用法 include
  • Hacking The Box----Awkward

    信息收集 nmap扫描 发现22号端口和80号端口打开 80号端口上运行着http服务器 访问ip后URL变为hat valley htb 修改 etc hosts文件 添加10 10 11 185 hat valley htb 然后就能正
  • parseInt和Math.floor的区别

    引入 在大多数情况下 他们都可以用来取一个小数的整数部分 但是在某些特殊场景下 就只能使用math floor 比如我们想取一个区间范围内的值 如果使用 就可以取到 但如果使用 就只能取到 这是为什么呢 首先我们还是从他们的原理开始看 co
  • docker容器添加ssh服务

    本篇文章主要介绍如何为一个容器添加ssh服务 使得可以从另一台服务器直接ssh到一个容器内部 达到直接访问容器内部环境的目的 避免需从宿主机docker exec或attach进入容器 实验环境 两台服务器地址 192 168 91 131
  • 外卖项目 - Day01

    外卖 Day01 外卖项目介绍 开发环境搭建 后台登录功能开发 后台退出功能开发 1 项目介绍 在开发外卖这个项目之前 我们需要全方位的来介绍一下当前我们学习的这个项目 接下来 我们将从以下的五个方面 来介绍 外卖这个项目 1 1 项目介绍
  • linux ui 代码,Android自定义UI模板图文详解【附源代码】

    不知道大家在实际开发中有没有自定义过UI模板 今天花时间研究了一下Android中自定义UI模板 与大家分享一下 每个设计良好的App都是自定义标题栏 在自定义标题栏的过程中大部分人可能都是自定义一个标题的xml文件 然后在需要的地方直接通
  • c++ svd实例整理

    矩阵简单封装 下面两个是一样的 http download csdn net download o07sai 2206411 https github com jiaohaitao svd double数组 http download cs
  • Java引用传递问题

    if planSuccessServices contains value service put choose yes successServices add service if planFailServices contains va
  • 在Windows上实现link

    众所周知 在Linux上 link命令很好很强大 可以很方便的为我们创建链接 但是在Windows上却没有对应的功能 之多只能建一个快捷方式 但是远远达不到link的功能 如何才能使Windows上也具备类似Linux上link的功能呢 最
  • 【Spring Boot 源码学习】自动装配流程源码解析(上)

    Spring Boot 源码学习系列 自动装配流程源码解析 上 引言 往期内容 主要内容 1 自动配置开关 2 加载自动配置组件 3 自动配置组件去重 总结 引言 上篇博文 笔者带大家从整体上了解了AutoConfigurationImpo
  • el search模糊查询

    import json from elasticsearch import Elasticsearch es Elasticsearch 192 168 55 90 9200 source arr uri camera deviceId p
  • 如何用多种方式安装jupyter notebook

    目录 注意 安装python的方式 在官网下载python3 安装后需要确保安装Python成功 安装jupyter notebook的三种方式 1 使用终端安装jupyter notebook 2 使用Pycharm控制台安装jupyte
  • javafx+mysql实现学生信息管理系统(连接数据库实现增删改查功能)利用了SceneBuilder

    功能简单介绍 因为是重新学的 花了一天写出来的 界面比较简陋 暂时还没有完善 但是功能都可以正常实现 数据库建表 可以参考格式 可以根据需要对应修改tableview中的column 这个对表没有太多要求 可以自行修改 首先是登陆页面 账号