在数字化时代,航班信息的查询变得尤为重要。对于经常出差或旅行的朋友来说,快速准确地查询到航班信息可以大大提高出行效率。今天,我们就来探讨如何使用Java编程轻松实现航班号查询功能,让你告别繁琐的操作。
一、背景介绍
航班号查询功能通常包括以下几个步骤:
- 用户输入航班号。
- 系统根据航班号查询航班信息。
- 将查询结果展示给用户。
为了实现这一功能,我们需要构建一个简单的Java程序,包括用户界面、数据处理和结果展示等模块。
二、技术选型
以下是实现航班号查询功能所需的技术:
- Java语言:作为后端开发语言,Java具有强大的跨平台能力和丰富的库支持。
- Swing:用于构建图形用户界面(GUI),方便用户与程序交互。
- 数据库:用于存储航班信息,我们可以选择MySQL、SQLite等轻量级数据库。
- JDBC:Java数据库连接(JDBC)用于连接数据库,执行SQL语句。
三、实现步骤
1. 创建Java项目
首先,我们需要创建一个Java项目,并添加Swing和JDBC相关依赖。
// pom.xml
<dependencies>
<!-- Swing -->
<dependency>
<groupId>javax.swing</groupId>
<artifactId>javax.swing</artifactId>
<version>1.8.0_311</version>
</dependency>
<!-- JDBC -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.26</version>
</dependency>
</dependencies>
2. 设计GUI界面
使用Swing创建一个简单的航班号查询界面,包括输入框、按钮和结果显示区域。
// FlightQueryFrame.java
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class FlightQueryFrame extends JFrame {
private JTextField flightNumberField;
private JButton queryButton;
private JTextArea resultArea;
public FlightQueryFrame() {
setTitle("航班号查询");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new BorderLayout());
flightNumberField = new JTextField(20);
queryButton = new JButton("查询");
resultArea = new JTextArea(20, 50);
resultArea.setEditable(false);
JPanel topPanel = new JPanel();
topPanel.add(new JLabel("航班号:"));
topPanel.add(flightNumberField);
topPanel.add(queryButton);
add(topPanel, BorderLayout.NORTH);
add(new JScrollPane(resultArea), BorderLayout.CENTER);
queryButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String flightNumber = flightNumberField.getText();
queryFlightInfo(flightNumber);
}
});
pack();
setLocationRelativeTo(null);
}
private void queryFlightInfo(String flightNumber) {
// 查询航班信息并展示结果
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new FlightQueryFrame().setVisible(true);
}
});
}
}
3. 连接数据库
使用JDBC连接到数据库,并创建一个用于存储航班信息的表。
// DBUtil.java
import java.sql.*;
public class DBUtil {
private static final String URL = "jdbc:mysql://localhost:3306/flight_db";
private static final String USER = "root";
private static final String PASSWORD = "password";
public static Connection getConnection() throws SQLException {
return DriverManager.getConnection(URL, USER, PASSWORD);
}
}
4. 查询航班信息
在queryFlightInfo方法中,根据用户输入的航班号查询数据库,并将结果展示在界面上。
// FlightQueryFrame.java
// ...
private void queryFlightInfo(String flightNumber) {
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
try {
conn = DBUtil.getConnection();
String sql = "SELECT * FROM flights WHERE flight_number = ?";
ps = conn.prepareStatement(sql);
ps.setString(1, flightNumber);
rs = ps.executeQuery();
StringBuilder result = new StringBuilder();
while (rs.next()) {
String flightNumber = rs.getString("flight_number");
String departure = rs.getString("departure");
String arrival = rs.getString("arrival");
String departureTime = rs.getString("departure_time");
String arrivalTime = rs.getString("arrival_time");
result.append("航班号:").append(flightNumber)
.append("\n出发地:").append(departure)
.append("\n目的地:").append(arrival)
.append("\n出发时间:").append(departureTime)
.append("\n到达时间:").append(arrivalTime)
.append("\n\n");
}
resultArea.setText(result.toString());
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if (rs != null) rs.close();
if (ps != null) ps.close();
if (conn != null) conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
5. 运行程序
运行程序后,你可以看到航班号查询界面。输入航班号并点击“查询”按钮,程序将自动连接数据库并查询结果,最终将结果显示在界面上。
四、总结
通过以上步骤,我们成功使用Java编程实现了航班号查询功能。这个程序简单易用,可以帮助用户快速准确地查询到航班信息。在实际应用中,你可以根据需求对程序进行扩展,例如添加航班预订、改签等功能。
