高颜值数据库项目实战MySQL+JavaFX+Fxml+CSS(完整精讲解版+源代码)(六)

高颜值数据库项目实战MySQL+JavaFX+Fxml+CSS(完整精讲解版+源代码)(一)

高颜值数据库项目实战MySQL+JavaFX+Fxml+CSS(完整精讲解版+源代码)(二)

高颜值数据库项目实战MySQL+JavaFX+Fxml+CSS(完整精讲解版+源代码)(三)

高颜值数据库项目实战MySQL+JavaFX+Fxml+CSS(完整精讲解版+源代码)(四)

高颜值数据库项目实战MySQL+JavaFX+Fxml+CSS(完整精讲解版+源代码)(五)

[高颜值数据库项目实战MySQL+JavaFX+Fxml+CSS(完整精讲解版+源代码)(六)](当前位置)

高颜值数据库项目实战MySQL+JavaFX+Fxml+CSS(完整精讲解版+源代码)(七)

高颜值数据库项目实战MySQL+JavaFX+Fxml+CSS(完整精讲解版+源代码)(八)

高颜值数据库项目实战MySQL+JavaFX+Fxml+CSS(完整精讲解版+源代码)(九)

更多项目逐句吐血精讲在这里,加油ヾ(◍°∇°◍)ノ゙!!

项目效果图

功能点实现

  1. 实现学生信息的录入
  2. 实现学生信息的修改
  3. 实现学生信息的更新
  4. 实现学生信息的删除
  5. 添加快捷键使用,方便快速管理
  6. 使用javafx+fxml+css控制ui样式
  7. 实现以javafx内部api调用绘制字体特效,无需额外资源调度
  8. 实现软件图标自定义,增加软件美观度
  9. 实现拖动窗口即可移动,使更加人性化
  10. 实现软件英文化,增加可交流性
  11. 禁用窗口缩放功能,防止ui碰撞
  12. 添加作者、主页、关闭按钮
  13. 增加事务弹窗,给予正确提示及错误解决方案

内部优化

  1. 使用分装思想,将功能块拆分,设立CreateMenu类,统一添加
  2. 封装错误与信息提示框,统一布局格式
  3. 封装数据库连接类,无需重复调度
  4. 采用Lambda表达式绑定事件,无需重写类
  5. 使用fxml模块化设计标签,方便增改
  6. 采用css设置样式,统一管理
  7. 去除不必要的类public,增加软件安全性
  8. 利用SceneBuilder绘制生成fxml控件,提升编写效率
  9. 采用不同尺寸图标格式适应多种运行状态

类结构示例

在这里插入图片描述

创建数据库连接类

数据库使用mysql,百度就有下载,要下载exe版的,zip不好配置了,弄不好就不能用,网上有好多教程二三十步就安装好了,也不费劲%&%$&。。

还要下载一个Navicat,是可视化的,这个要钱的,要下载破解器,弄好之后,可能还不能用,有个错误信息,要输三条语句才能用

我记得是,具体看百度吧

1、use mysql;

2、alter user ‘root’@‘localhost’ identified with mysql_native_password
by ‘********’;

3、flush privileges;

你也可以用oracle,不过比这个也麻烦,你可以试一下

1、创建类

我们既然是数据库项目,我们当然要创建数据库的连接

创建ConnectSQL类用作连接

class ConnectSQL {
    Statement connectSQL(){
 
        return statement;
    }
}

2、数据库连接步骤

数据库连接一般就那几步

  1. Class.forName(“com.mysql.cj.jdbc.Driver”);
  2. Connection connection = DriverManager.getConnection(“地址”,“名字”,“密码”);
  3. Statement statement = connection.createStatement();

地址要写:

jdbc:mysql://localhost:3306/university?serverTimezone=CTT&useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true

名字是你数据库的名

密码是你数据库的密码

3、一百个注意事项

注意: 我的端口号是3306,默认也是3306,要是改成别的记得改了
注意: 我用的是mysql-connector-java-8.0.18.jar,要记得导包,下载地址直接百度就有,导包也百度就有
注意: 我用的是mysql ,要是其他的数据库就要用其他的jar
注意版本: mysql是8的,还有一种常见的是5的,用错就不行
注意: 要保证mysql是启动的,要是启动不起来就看一下服务,有时候杀毒软件那个小火箭一飞就按垃圾清理了,你死活连不上
注意: 你用户要建立对,密码要填对,垃圾的错误提示,不管你怎么错了都是显示连接错误
注意: 地址中要使用useUnicode,要不用的是其他的字符集
注意: 地址中要使用serverTimezone=CTT,时间同步
注意: 地址中要使用characterEncoding=utf-8,字符编码
注意: 地址中使用university,是因为我在数据库中建立的一个university的数据库(注意不是表),你要根据你建立的来弄
注意: 在写代码之前要保证数据库能用,先在cmd或者Navicat中弄对

这些坑我都掉过,我看见过阎王爷了,我现在谁也不怕了!!!

4、类的具体实现

其实直接把那三句话写上就行了,但是追求完美:所以加了些异常处理,就成下面这个样子了:

  • 我又定义了一个MassageError类,用来专门显示错误信息
  • 这个类主要是用来返回一个statement,这样就不用每回都这么麻烦的连接了,主要是为了以后方便

第一句就扩展成这样了:

try {
    Class.forName("com.mysql.cj.jdbc.Driver");
} catch (ClassNotFoundException e) {
    new MassageError().show("Class Not Found!",e.getMessage());
}

第二句就扩展成这样了:

Connection connection = null;
try {
    connection = DriverManager.getConnection(
            "jdbc:mysql://localhost:3306/university?serverTimezone=CTT&useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true",
            "root","hadoop");
} catch (SQLException e) {
    new MassageError().show("Connection Unavailable!",e.getMessage());
}

第三句就扩展成这样了:

Statement statement = null;
try {
    assert connection != null;
    statement = connection.createStatement();
} catch (SQLException e) {
    new MassageError().show("Statement Unavailable!",e.getMessage());
}

最后总的代码就是这样的:

package system;

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

class ConnectSQL {
    Statement connectSQL(){
        try {
            Class.forName("com.mysql.cj.jdbc.Driver");
        } catch (ClassNotFoundException e) {
            new MassageError().show("Class Not Found!",e.getMessage());
        }
        Connection connection = null;
        try {
            connection = DriverManager.getConnection(
                    "jdbc:mysql://localhost:3306/university?serverTimezone=CTT&useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true",
                    "root","hadoop");
        } catch (SQLException e) {
            new MassageError().show("Connection Unavailable!",e.getMessage());
        }
        Statement statement = null;
        try {
            assert connection != null;
            statement = connection.createStatement();
        } catch (SQLException e) {
            new MassageError().show("Statement Unavailable!",e.getMessage());
        }
        return statement;
    }
}

5、错误显示的类

  • Alert就是一个弹出的窗口
  • setTitle是标题
  • setHeaderText是主要的信息
  • setContentText是详细的信息
package system;

import javafx.scene.control.Alert;

class MassageError {
    void show(String HeaderText,String ContentText){
        Alert alert = new Alert(Alert.AlertType.ERROR);
        alert.setTitle("error");
        alert.setHeaderText(HeaderText);
        alert.setContentText(ContentText);
        alert.show();
    }

}

好了,现在就完成了连接数据库的操作

关注后续章节,我们会添加更多功能:

高颜值数据库项目实战MySQL+JavaFX+Fxml+CSS(完整精讲解版+源代码)(一)

高颜值数据库项目实战MySQL+JavaFX+Fxml+CSS(完整精讲解版+源代码)(二)

高颜值数据库项目实战MySQL+JavaFX+Fxml+CSS(完整精讲解版+源代码)(三)

高颜值数据库项目实战MySQL+JavaFX+Fxml+CSS(完整精讲解版+源代码)(四)

高颜值数据库项目实战MySQL+JavaFX+Fxml+CSS(完整精讲解版+源代码)(五)

[高颜值数据库项目实战MySQL+JavaFX+Fxml+CSS(完整精讲解版+源代码)(六)](当前位置)

高颜值数据库项目实战MySQL+JavaFX+Fxml+CSS(完整精讲解版+源代码)(七)

高颜值数据库项目实战MySQL+JavaFX+Fxml+CSS(完整精讲解版+源代码)(八)

高颜值数据库项目实战MySQL+JavaFX+Fxml+CSS(完整精讲解版+源代码)(九)

后记

更多项目逐句吐血精讲在这里,加油ヾ(◍°∇°◍)ノ゙!!

C语言飞机大战小游戏(2万字!完整精讲解版+源代码)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值