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

功能简单介绍

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

数据库建表:可以参考格式 可以根据需要对应修改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是刚学的所以还请见谅。

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

评论 25
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

写不出来就跑路

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值