使用Java SwingGUI框架来构建用户界面,并使用JDBC连接MySQL数据库,编写Java代码来实现界面与数据库之间的交互逻辑,以便用户可以通过界面对数据库进行增删改查等操作。代码范例
时间: 2024-02-21 17:00:09 浏览: 163
应用Java Swing GUI界面技术实现的Java JDBC数据库操作技术的应用实例.doc
好的,我可以为你提供一个简单的 Java Swing GUI 和 JDBC 连接 MySQL 数据库的示例代码,实现对学生信息进行增删改查操作。
首先,我们需要在 MySQL 数据库中创建一个名为 `student` 的表,包含 `id`、`name` 和 `age` 三个字段。然后,我们可以按照以下步骤实现:
1. 导入 Swing 和 JDBC 相关的包和类。
2. 建立数据库连接:使用 JDBC API 中的 `DriverManager` 类来建立与数据库的连接,需要提供数据库的 URL、用户名和密码等信息。
3. 创建 Swing 窗口和组件:使用 `JFrame`、`JPanel`、`JButton`、`JTextField` 等组件来创建窗口和输入框等。
4. 实现增删改查功能:使用 `Statement` 对象来执行 SQL 语句,根据用户输入的内容进行增删改查操作。
5. 处理异常和关闭数据库连接。
下面是示例代码:
```java
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
import javax.swing.*;
public class StudentGUI extends JFrame implements ActionListener {
private static final long serialVersionUID = 1L;
private JLabel labelID, labelName, labelAge;
private JTextField textFieldID, textFieldName, textFieldAge;
private JButton buttonAdd, buttonDelete, buttonUpdate, buttonSearch;
private Connection conn;
private Statement stmt;
public StudentGUI() {
super("学生信息管理系统");
// 建立数据库连接
try {
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/test";
String username = "root";
String password = "123456";
conn = DriverManager.getConnection(url, username, password);
stmt = conn.createStatement();
} catch (Exception e) {
e.printStackTrace();
}
// 创建 Swing 窗口和组件
JPanel panel = new JPanel(new GridLayout(4, 2));
labelID = new JLabel("学号:");
textFieldID = new JTextField(20);
labelName = new JLabel("姓名:");
textFieldName = new JTextField(20);
labelAge = new JLabel("年龄:");
textFieldAge = new JTextField(20);
panel.add(labelID);
panel.add(textFieldID);
panel.add(labelName);
panel.add(textFieldName);
panel.add(labelAge);
panel.add(textFieldAge);
buttonAdd = new JButton("添加");
buttonDelete = new JButton("删除");
buttonUpdate = new JButton("修改");
buttonSearch = new JButton("查询");
buttonAdd.addActionListener(this);
buttonDelete.addActionListener(this);
buttonUpdate.addActionListener(this);
buttonSearch.addActionListener(this);
panel.add(buttonAdd);
panel.add(buttonDelete);
panel.add(buttonUpdate);
panel.add(buttonSearch);
getContentPane().add(panel);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(400, 200);
setLocationRelativeTo(null);
setVisible(true);
}
public void actionPerformed(ActionEvent e) {
try {
if (e.getSource() == buttonAdd) {
String id = textFieldID.getText();
String name = textFieldName.getText();
String age = textFieldAge.getText();
String sql = "insert into student(id, name, age) values(" + id + ", '" + name + "', " + age + ")";
stmt.executeUpdate(sql);
JOptionPane.showMessageDialog(this, "添加成功");
} else if (e.getSource() == buttonDelete) {
String id = textFieldID.getText();
String sql = "delete from student where id=" + id;
stmt.executeUpdate(sql);
JOptionPane.showMessageDialog(this, "删除成功");
} else if (e.getSource() == buttonUpdate) {
String id = textFieldID.getText();
String name = textFieldName.getText();
String age = textFieldAge.getText();
String sql = "update student set name='" + name + "', age=" + age + " where id=" + id;
stmt.executeUpdate(sql);
JOptionPane.showMessageDialog(this, "修改成功");
} else if (e.getSource() == buttonSearch) {
String id = textFieldID.getText();
String sql = "select * from student where id=" + id;
ResultSet rs = stmt.executeQuery(sql);
if (rs.next()) {
String name = rs.getString("name");
String age = rs.getString("age");
textFieldName.setText(name);
textFieldAge.setText(age);
} else {
JOptionPane.showMessageDialog(this, "未找到该学生");
}
rs.close();
}
} catch (Exception ex) {
ex.printStackTrace();
JOptionPane.showMessageDialog(this, "操作失败");
}
}
public static void main(String[] args) {
new StudentGUI();
}
protected void finalize() throws Throwable {
super.finalize();
stmt.close();
conn.close();
}
}
```
以上是一个简单的示例,你可以根据实际需求进行修改和扩展。希望这可以帮助到你。
阅读全文