JavaFX轻松入门:数据库应用指南 (java fx入门 数据库)

JavaFX是目前非常流行的用于开发桌面应用程序的Java框架,其结合了Java语言的稳定性与可靠性以及现代化图形用户界面(GUI)的设计风格。JavaFX通过提供许多JavaFX库和相关工具,为开发者提供了丰富的应用程序开发功能。这篇文章将介绍JavaFX如何轻松地应用于数据库操作,并提供一些有用的技巧与建议,帮助您更好地开发JavaFX应用程序。

数据库是当今大多数企业的核心,它保存了企业的所有数据和关键信息。因此,了解如何使用JavaFX与数据库交互通信是非常重要的。JavaFX通过提供用于连接各种数据库的API(应用程序接口),使数据库操作变得更加容易。这些API包括JDBC(Java数据库连接)API和JavaFX的一些内置API。在本文中,我们将讨论如何使用JDBC连接到数据库,并通过使用JavaFX的内置API来简化操作。

之一步:JDBC(Java数据库连接)API

JDBC(Java数据库连接)API是Java平台的标准API,它用于连接到各种数据库,并与它们交互。 JDBC库提供了一种方法来连接到几乎所有主要数据库系统(包括MySQL,Oracle,PostgreSQL等),并且由于JDBC是标准API,因此对于连接不同数据库系统的开发者来说,学习成本非常低。

以下是使用JDBC连接到数据库的简单步骤:

1. 导入所需的JDBC库文件。

2. 加载JDBC驱动程序。

3. 使用驱动程序管理器获取数据库连接。

4. 创建并执行所需的SQL查询语句。

5. 获取查询结果并处理它们。

使用JDBC连接到数据库时,需要知道以下几个重要的连接参数:

数据库URL:这是连接到数据库的地址,通常包括服务器名称,端口号,数据库名称和用户名密码等信息。在JDBC中,它通常以jdbc:mysql://localhost:3306/mydb作为格式表示。

用户名和密码:这些参数用来验证连接到数据库的身份凭证。

以下是一个使用JDBC连接到MySQL数据库的简单示例:

// 导入JDBC库

import java.sql.*;

public class JDBCTest {

public static void mn(String[] args) {

Connection conn = null;

Statement stmt = null;

try {

//注册JDBC驱动

Class.forName(“com.mysql.jdbc.Driver”);

//连接到数据库

System.out.println(“Connecting to database…”);

conn = DriverManager.getConnection(“jdbc:mysql://localhost:3306/mydb”,”username”,”password”);

//查询数据库

System.out.println(“Creating statement…”);

stmt = conn.createStatement();

String sql;

sql = “SELECT id, name, age FROM customers”;

ResultSet rs = stmt.executeQuery(sql);

//处理查询结果

while(rs.next()){

int id = rs.getInt(“id”);

String name = rs.getString(“name”);

int age = rs.getInt(“age”);

System.out.print(“ID: ” + id);

System.out.print(“, Name: ” + name);

System.out.println(“, Age: ” + age);

}

//释放资源

rs.close();

stmt.close();

conn.close();

} catch (SQLException se) {

//Handle errors for JDBC

se.printStackTrace();

} catch (Exception e) {

//Handle errors for Class.forName

e.printStackTrace();

} finally {

//finally block used to close resources

try {

if (stmt != null)

stmt.close();

} catch (SQLException se2) {

} // nothing we can do

try {

if (conn != null)

conn.close();

} catch (SQLException se) {

se.printStackTrace();

}//end finally try

}//end try

System.out.println(“Goodbye!”);

}//end mn

}//end JDBCTest

以上代码通过使用JDBC连接到本地MySQL数据库,并查询其customers表的数据。在这个例子中,我们首先注册了JDBC驱动程序,然后使用getConnection()方法连接到数据库。接着,我们使用Statement对象执行SQL查询语句,并通过while循环遍历查询结果。我们释放资源并断开与数据库的连接。

第二步:JavaFX内置数据库操作API

JavaFX内置了一些用于数据库操作的API,使得与数据库之间交互变得更加容易。以下是一些JavaFX数据库API的示例:

1. javafx.scene.control.TableColumn:用于呈现查询结果的表格列。

2. javafx.collections.ObservableList:用于存储查询结果的可观察对象列表。

3. javafx.beans.property.SimpleStringProperty:用于构建表格列数据的属性类。

4. javafx.scene.control.TableView:用于显示表格列和查询结果的表格视图。

5. javafx.scene.control.TextField:用于从用户输入中获取数据。

下面是一个简单的JavaFX数据库程序示例,它使用JavaFX的内置API读取MySQL数据库中的数据,并显示在JavaFX的表格视图中。

// 导入JavaFX库

import javafx.application.Application;

import javafx.beans.property.SimpleStringProperty;

import javafx.collections.FXCollections;

import javafx.collections.ObservableList;

import javafx.event.ActionEvent;

import javafx.event.EventHandler;

import javafx.geometry.Insets;

import javafx.scene.Scene;

import javafx.scene.control.Button;

import javafx.scene.control.TableColumn;

import javafx.scene.control.TableView;

import javafx.scene.control.TextField;

import javafx.scene.layout.BorderPane;

import javafx.scene.layout.VBox;

import javafx.stage.Stage;

import java.sql.*;

public class JavaFXDatabaseApplication extends Application {

private final ObservableList data =

FXCollections.observableArrayList();

private void initData() {

Connection conn = null;

Statement stmt = null;

try {

Class.forName(“com.mysql.jdbc.Driver”);

conn = DriverManager.getConnection(“jdbc:mysql://localhost:3306/mydb”,”username”,”password”);

stmt = conn.createStatement();

String sql;

sql = “SELECT * FROM customers”;

ResultSet rs = stmt.executeQuery(sql);

while(rs.next()){

data.add(new Customer(rs.getInt(“id”), rs.getString(“name”), rs.getInt(“age”)));

}

rs.close();

stmt.close();

conn.close();

} catch (SQLException se) {

se.printStackTrace();

} catch (Exception e) {

e.printStackTrace();

} finally {

try {

if (stmt != null)

stmt.close();

} catch (SQLException se2) {

}

try {

if (conn != null)

conn.close();

} catch (SQLException se) {

se.printStackTrace();

}

}

}

private BorderPane createUI() {

TableView table = new TableView();

table.setEditable(false);

TableColumn idColumn = new TableColumn(“ID”);

idColumn.setMinWidth(100);

idColumn.setCellValueFactory(

cellData -> new SimpleStringProperty(Integer.toString(cellData.getValue().getId())));

TableColumn nameColumn = new TableColumn(“Name”);

nameColumn.setMinWidth(100);

nameColumn.setCellValueFactory(

cellData -> new SimpleStringProperty(cellData.getValue().getName()));

TableColumn ageColumn = new TableColumn(“Age”);

ageColumn.setMinWidth(100);

ageColumn.setCellValueFactory(

cellData -> new SimpleStringProperty(Integer.toString(cellData.getValue().getAge())));

table.setItems(data);

table.getColumns().addAll(idColumn, nameColumn, ageColumn);

final TextField nameField = new TextField();

nameField.setPromptText(“Enter name”);

nameField.setMaxWidth(nameColumn.getPrefWidth());

final TextField ageField = new TextField();

ageField.setPromptText(“Enter age”);

final Button addButton = new Button(“Add”);

addButton.setOnAction(new EventHandler() {

@Override public void handle(ActionEvent e) {

data.add(new Customer(data.size() + 1,

nameField.getText(),

Integer.parseInt(ageField.getText())));

nameField.clear();

ageField.clear();

}

});

VBox vbox = new VBox();

vbox.setSpacing(5);

vbox.setPadding(new Insets(10, 0, 0, 10));

vbox.getChildren().addAll(nameField, ageField, addButton);

BorderPane borderPane = new BorderPane();

borderPane.setCenter(table);

borderPane.setBottom(vbox);

return borderPane;

}

@Override public void start(Stage primaryStage) throws Exception {

initData();

primaryStage.setTitle(“JavaFX Database Application”);

primaryStage.setScene(new Scene(createUI()));

primaryStage.show();

}

public static void mn(String[] args) {

launch(args);

}

}

该程序通过使用JavaFX的内置API和JDBC连接MySQL数据库,展示了一张包含ID,姓名和年龄的表格。您可以使用文本字段来添加新的客户,并将其添加到表格中。该程序使用了JavaFX的布局管理器BorderPane,该容器可以将界面分成五个部分。在这个示例中,表视图被放在center的位置,而用户输入字段和添加按钮则在底部部分。

结论

相关问题拓展阅读:

Java项目:mqtt发送的数据如何保存到数据库里?

有PLC数据直接写入MYSQL的嫌陆橡芹旁

网关悉兆装置

循环遍历set的元素,通过java.sql.PreparedStatement的setObject方法将set的元顷盯素按握乎察顺序放入预编译的段茄参数化SQL中

java fx设置了鼠标点击但是没反应,怎么解决啊?大佬求解!

从 JavaFX 2.2 以后,JavaFX 已经集成在 JRE 7 和 JDK 7 以及物手以后的 Java 版本中了。因为 JDK 可以很好地运行在主流桌面系统上(Windows, Mac OS X, and Linux),因此 JavaFX 也可以运行在罩搏嫌这些主流的桌面系统上。跨平台兼银蔽容性

javaweb和jsp的区别

web系统开发——Java在web开发上处于领导地位!现在主流的是MVC的三层架构,裤握而jsp就是页面表现层的首选,因为它出现的比较早,技术相对成熟和普及。这就是最扰纯握为流行的J2EE技术。

关系就是:jsp服务于java web开发。

jsp就是html中间插入java代码,最终要先编译为servlet,然后转换为。class文件的。

web开发用到的框架基本都是java语言写的(当然离不开html和xml等了)

所以,学好java基础是缓庆学这些的基础!

javaweb是一种开发类型,而P(JavaServer Pages)是一种动态网页技术标准。而且javaweb的开发过程中一般都会用到jsp技术。

JAVA是一种编程语言,可以编写应用程序,主要应用在网络编程上。P是建立在JAVA基础上的一种网络编程语言,只能在网页上应用。 

可以把jsp理解为脚本,java为面向对象语言。jsp作用主要是负责睁氏页面展现,java负责逻辑,业务处理

jsp本质是servlet,servlet本质是java类,就是这么个关系。

扩展资料

JAVA和P之间的关系,以及JAVA的完整认识

JAVA分为J2EE,J2SE,J2ME下面分别介绍:

一、J2EE:Java 2 Platform Enterprise Edition 企业版,用于企业应用,支持分布式部署。  

J2EE平台由一整套服务(Services)、应用程序接口(APIs)和协议构成,

它对开发基于Web的多层应用提供了功能上的支持。它包含13种核心技术规范:

1、Java Database Connectivity (JDBC)

以一种统一的方式来对各种各样的数据库进行存取

2、Java Naming and Directory Interface (JNDI)

用于名字和目录服务,它提供了一致的模型来存取和操作企业级的资源如DNS和LDAP,本地文件系统等  

3、Enterprise Java Beans (EJB)  

提供了一个框架来开发和实施分布式商务逻辑,显著地简化了具有可伸缩性和高度复杂的企业级应用的开发

4、JavaServer Pages (Ps) 这里就是你所说的P!!!!!!

用以创建动态网页

5、Java servlets

提供的功能大多与P类似,不过实现的方式不同

6、Remote Method Invocation (RMI)  

在远程对象上脊芦调用一些方法,使用了连续序列方式在客户端和服务器端传递数据

7、Interface Description Language (IDL)

将Java和CORBA集成在一起

8、Java Transaction Architecture (JTA)

可以存取各种事务

9、Java Transaction Service (JTS)  

规定了事务管理器的实现方式樱早带

10、JavaMail  

用于存取邮件服务器的API,它提供了一套邮件服务器的抽象类

11、JavaBeans Activation Framework(JAF)  

JavaMmail利用JAF来处理MIME-编码的邮件附件,MIME的字节流可以被转换成JAVA对象,或者转换自JAVA对象

12、Java Messaging Service (JMS)  

是用于和面向消息的中间件相互通信的应用程序接口(API)

13、Extensible Markup Language (XML)

XML是一种可以用来定义其它标记语言的语言

上面的P是主流,基于MVC的实现,更流行使用,也最安全(比较其他语言做的网站)

其中EJB是java最难学的东西

但是现在的sun公司出来一种新的技术:java FX,

可以像FLASH一样在浏览器中执行,但是也要安装插件,具体可以参见www.sun.com

二、J2SE:Java 2 Platform Standard Edition 标准版,用于桌面应用,也是J2EE的基础。  

包括JAVA基础,IO,Swing,AWT,线程,等知识.也是学习JAVA的必经之路(基础)!

三、J2ME:Java 2 Platform Micro Edition 移动版用于小型设备,是J2SE的一个子集。

参考资料来源:

百度百科-Java

参考资料来源:

百度百科-P

P和JAVA的区别,P算是JAVA一种技术,用在网页编程上,因为JAVA不能直接写在html上,但jsp能,jsp就是Servlet程序,当P收到客户的请求时,SCRIPTLET(脚本小程序)就会被执行,脚本段将入到P所生成的目标Servlet的Serivce函数中碧拿瞎.P的执行过程:

1.P页面的访问请求被发送到服务器端

2.服悔空务器中有相应的P引擎,P引擎把P页面转译成Servlet程序

3.然后Servlet程序被编译成Class文件

4.然后Class文件被执行,执行的结果返回器时,服务器会检查是否有对应的Servlet存在,如果存在则是直接执行,如果不存在则生成相应的Servlet.

P是一种动态网页,它的网页代码的静态部分是HTML语言,动态部分是JAVA语言,所以,如果想要学好P就必须先学会JAVA,P网页的很多技术比如Hibernate,Spring,Struts等都是建立在JAVA语言的敏侍基础上的

jsp只是前天显示页面,而你说的javaweb则是我们俗称的j2ee吧,它主要是后台信歼业务处理,javaweb有众多的框架,这也框架都是,从不断的实践中总结而成,通岩坦宏过这些框架的辅助,可以是你的web项目,更加有效粗册率,以及更加容易维护

首先,你要明确一点:javaweb是使用java语言进行web系统开发!

web系统开发——Java在web开发上处于领导地陪敬位!现在主流的是MVC的三层架构,而jsp就是页面表现层的首选,因为它出现的比较早,技术相对成熟和普及。这就是最为流行的J2EE技术。

关系就是:jsp服务于java web开发。

jsp就是html中间插入java代码,最终要芦隐慎先编译为servlet,然后转换为。class文件的。

web开发携码用到的框架基本都是java语言写的(当然离不开html和xml等了)

所以,学好java基础是学这些的基础!

关于java fx入门 数据库的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。


数据运维技术 » JavaFX轻松入门:数据库应用指南 (java fx入门 数据库)