功能简单介绍
因为是重新学的 花了一天写出来的 界面比较简陋 暂时还没有完善 但是功能都可以正常实现
数据库建表:可以参考格式 可以根据需要对应修改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是刚学的所以还请见谅。
需要源码的可以私信,共同学习交流。