JavaFX程序初次运行创建数据库并执行建表SQL详解

下面是JavaFX程序初次运行创建数据库并执行建表SQL的完整攻略。

前置知识

在进行本攻略前,需要以下知识储备:

  • Java语言基础
  • JDBC编程
  • MySQL数据库

步骤

步骤1:导入MySQL驱动

JavaFX程序中需要使用MySQL数据库,因此需要导入MySQL驱动。可在Maven配置文件中添加以下依赖:

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.21</version>
</dependency>

步骤2:创建数据库

在JavaFX程序初次运行时,需要检查是否已创建数据库,如果数据库不存在则需要创建。

以下是创建数据库的代码示例:

String url = "jdbc:mysql://localhost:3306?serverTimezone=GMT%2B8&useSSL=false";
String user = "root";
String password = "root";
try (Connection conn = DriverManager.getConnection(url, user, password);
     Statement stmt = conn.createStatement()) {
    stmt.executeUpdate("CREATE DATABASE IF NOT EXISTS test_db");
}

步骤3:执行建表SQL语句

在创建完数据库后,需要执行建表SQL语句以创建数据表。

以下是执行建表SQL语句的代码示例:

String url = "jdbc:mysql://localhost:3306/test_db?serverTimezone=GMT%2B8&useSSL=false";
String user = "root";
String password = "root";
try (Connection conn = DriverManager.getConnection(url, user, password);
     Statement stmt = conn.createStatement()) {
    String sql = "CREATE TABLE IF NOT EXISTS user (" +
            "id INT(11) NOT NULL AUTO_INCREMENT," +
            "username VARCHAR(50) NOT NULL," +
            "password VARCHAR(50) NOT NULL," +
            "PRIMARY KEY (id)" +
            ")";
    stmt.executeUpdate(sql);
}

整合到JavaFX程序中

将以上代码整合到JavaFX程序中,并在程序的初始启动时执行即可。

示例代码:

public class App extends Application {
    @Override
    public void start(Stage primaryStage) throws Exception{
        String driver = "com.mysql.cj.jdbc.Driver";
        String url = "jdbc:mysql://localhost:3306?serverTimezone=GMT%2B8&useSSL=false";
        String user = "root";
        String password = "root";
        try {
            Class.forName(driver);
        } catch (ClassNotFoundException ignored) {
        }
        try (Connection conn = DriverManager.getConnection(url, user, password);
             Statement stmt = conn.createStatement()) {
            stmt.executeUpdate("CREATE DATABASE IF NOT EXISTS test_db");
            String sql = "CREATE TABLE IF NOT EXISTS user (" +
                    "id INT(11) NOT NULL AUTO_INCREMENT," +
                    "username VARCHAR(50) NOT NULL," +
                    "password VARCHAR(50) NOT NULL," +
                    "PRIMARY KEY (id)" +
                    ")";
            stmt.executeUpdate(sql);
        }
        FXMLLoader loader = new FXMLLoader(getClass().getResource("/fxml/sample.fxml"));
        primaryStage.setTitle("Hello World");
        primaryStage.setScene(new Scene(loader.load(), 300, 275));
        Controller controller = loader.getController();
        controller.init();
        primaryStage.show();
    }
}

在上述示例中,我们使用了JavaFX框架,加载了/sample.fxml文件并创建了控制器controller,在程序启动时执行了上述的数据库创建和建表SQL语句。

至此,JavaFX程序初次运行创建数据库并执行建表SQL的攻略完成。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JavaFX程序初次运行创建数据库并执行建表SQL详解 - Python技术站

(0)
上一篇 2023年6月16日
下一篇 2023年6月16日

相关文章

  • 解决问题:Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources

    首先, “Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources” 这个错误意味着 Maven 在构建时无法成功执行 maven-resources-plugin 插件,通常是由于插件本身的错误或项目配置不当导致的。针对这个错误,可以采取以下…

    Java 2023年5月19日
    00
  • Java实战之兼职平台系统的实现

    Java实战之兼职平台系统的实现——完整攻略 前言 本文将介绍如何使用Java实现一个兼职平台系统,其中包括如何搭建项目框架、如何设计数据库、如何实现用户注册、登录、发布任务、接受任务等功能。 项目框架搭建 在开始实现具体功能之前,我们需要先搭建好项目的框架。我们推荐使用Spring Boot作为项目框架,因为它具有快速开发、易于维护等优点。下面是搭建项目框…

    Java 2023年5月18日
    00
  • 深入理解hibernate的三种状态

    深入理解Hibernate的三种状态包括: 瞬时状态(transient state) 持久状态(persistent state) 游离状态(detached state) 瞬时状态(transient state) 当一个新的Java对象被创建时,它处于瞬时状态。Hibernate对该对象并没有关注,在Hibernate Session缓存(first …

    Java 2023年5月19日
    00
  • Struts2学习笔记(3)-DMI动态调用方式

    关于“Struts2学习笔记(3)-DMI动态调用方式”的攻略,以下是详细内容: 什么是DMI动态调用方式? DMI的全称为Dynamic Method Invocation,即动态方法调用。DMI可让Struts2框架在运行时跳过了常规的Action拦截器栈,直接调用目标方法。 在DMI中,Action类中定义的方法就成了可调用的动作,Struts2框架通…

    Java 2023年5月20日
    00
  • 浅谈Java对象禁止使用基本类型

    浅谈Java对象禁止使用基本类型 什么是基本类型 基本类型是Java中的8种基本数据类型,包括boolean、byte、short、int、long、float、double和char。这些类型并不是对象,是Java中的原始类型。 为什么Java对象禁止使用基本类型 虽然基本类型在Java中的使用非常方便和高效,但是基本类型缺乏封装性,难以进行面向对象的编程…

    Java 2023年5月26日
    00
  • java Long类型转为String类型的两种方式及区别说明

    Java中,可以使用两种方式将Long类型转换为String类型,分别是: 使用String类的valueOf方法进行转换 Long l = 123L; String s = String.valueOf(l); 使用Long类的toString方法进行转换 Long l = 123L; String s = l.toString(); 这两种方式的区别在于…

    Java 2023年5月27日
    00
  • Java sha1散列算法原理及代码实例

    Java sha1散列算法原理及代码实例 前言 在软件开发场景中,我们经常会需要对敏感数据进行加密处理,以防止数据泄漏和恶意攻击。散列算法是一种很好的加密方式。本文将详细介绍Java中的sha1散列算法,包括原理及代码实例。 sha1散列算法原理 sha1散列算法是一种单向不可逆算法,通过该算法我们可以将任意长度的数据进行加密处理。在Java中,sha1散列…

    Java 2023年5月19日
    00
  • AngularJS表单提交实例详解

    AngularJS是当前Web开发中最流行的JavaScript框架之一,其强大的表单处理功能被广泛使用。本文将从实例出发,详细讲解如何用AngularJS实现表单提交。 首先,我们需要在HTML中引入AngularJS 在使用AngularJS前,我们需要在HTML中引入相应的JS文件。可以从官网下载或使用CDN方式引入。 <script src=&…

    Java 2023年5月26日
    00
合作推广
合作推广
分享本页
返回顶部