import org.apache.commons.dbutils.DbUtils;
import javax.swing.*;
import java.awt.*;
import java.sql.*;
public class DataOperateDemo extends JFrame {
static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
static final String DB_URL = "jdbc:mysql://localhost:3306/mysql";
static final String USER = "root";
static final String PASS = "gena20031121";
private JTable table;
private JScrollPane scrollPane;
private JButton addButton;
private JButton deleteButton;
private JButton updateButton;
private JButton searchButton;
public DataOperateDemo() {
setTitle("数据表操作");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(400, 300);
// 创建JTable和滚动条
table = new JTable();
scrollPane = new JScrollPane(table);
getContentPane().add(scrollPane, BorderLayout.CENTER);
// 创建操作按钮
addButton = new JButton("增加");
deleteButton = new JButton("删除");
updateButton = new JButton("修改");
searchButton = new JButton("查询");
JPanel buttonPanel = new JPanel();
buttonPanel.add(addButton);
buttonPanel.add(deleteButton);
buttonPanel.add(updateButton);
buttonPanel.add(searchButton);
getContentPane().add(buttonPanel, BorderLayout.SOUTH);
addButton.addActionListener(e -> addData());
deleteButton.addActionListener(e -> deleteData());
updateButton.addActionListener(e -> updateData());
searchButton.addActionListener(e -> searchData());
setVisible(true);
}
// 增加数据
private void addData() {
Connection conn = null;
Statement stmt = null;
try {
Class.forName(JDBC_DRIVER);
conn = DriverManager.getConnection(DB_URL, USER, PASS);
stmt = conn.createStatement();
int id = Integer.parseInt(JOptionPane.showInputDialog("请输入ID"));
String name = JOptionPane.showInputDialog("请输入姓名");
int age = Integer.parseInt(JOptionPane.showInputDialog("请输入年龄"));
String sql = "INSERT INTO student (id, name, age) VALUES (" + id + ", '" + name + "', " + age + ")";
stmt.executeUpdate(sql);
JOptionPane.showMessageDialog(this, "添加成功");
} catch (SQLException | ClassNotFoundException se) {
se.printStackTrace();
JOptionPane.showMessageDialog(this, "添加失败:" + se.getMessage());
} finally {
try {
if (stmt != null) stmt.close();
} catch (SQLException se) {
se.printStackTrace();
}
try {
if (conn != null) conn.close();
} catch (SQLException se) {
se.printStackTrace();
}
}
}
// 删除数据
private void deleteData() {
int selectedRow = table.getSelectedRow();
if (selectedRow == -1) {
JOptionPane.showMessageDialog(this, "请先选择一行数据");
return;
}
int id = Integer.parseInt(table.getValueAt(selectedRow, 0).toString());
Connection conn = null;
Statement stmt = null;
try {
Class.forName(JDBC_DRIVER);
conn = DriverManager.getConnection(DB_URL, USER, PASS);
stmt = conn.createStatement();
String sql = "DELETE FROM student WHERE id=" + id;
stmt.executeUpdate(sql);
JOptionPane.showMessageDialog(this, "删除成功");
} catch (SQLException | ClassNotFoundException se) {
se.printStackTrace();
JOptionPane.showMessageDialog(this, "删除失败:" + se.getMessage());
} finally {
try {
if (stmt != null) stmt.close();
} catch (SQLException se) {
se.printStackTrace();
}
try {
if (conn != null) conn.close();
} catch (SQLException se) {
se.printStackTrace();
}
}
}
// 修改数据
private void updateData() {
int selectedRow = table.getSelectedRow();
if (selectedRow == -1) {
JOptionPane.showMessageDialog(this, "请先选择一行数据");
return;
}
int id = Integer.parseInt(table.getValueAt(selectedRow, 0).toString());
String name = JOptionPane.showInputDialog("请输入姓名");
int age = Integer.parseInt(JOptionPane.showInputDialog("请输入年龄"));
Connection conn = null;
Statement stmt = null;
try {
Class.forName(JDBC_DRIVER);
conn = DriverManager.getConnection(DB_URL, USER, PASS);
stmt = conn.createStatement();
String sql = "UPDATE student SET name='" + name + "', age=" + age + " WHERE id=" + id;
stmt.executeUpdate(sql);
JOptionPane.showMessageDialog(this, "修改成功");
} catch (SQLException | ClassNotFoundException se) {
se.printStackTrace();
JOptionPane.showMessageDialog(this, "修改失败:" + se.getMessage());
} finally {
try {
if (stmt != null) stmt.close();
} catch (SQLException se) {
se.printStackTrace();
}
try {
if (conn != null) conn.close();
} catch (SQLException se) {
se.printStackTrace();
}
}
}
// 查询数据
private void searchData() {
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try {
Class.forName(JDBC_DRIVER);
conn = DriverManager.getConnection(DB_URL, USER, PASS);
stmt = conn.createStatement();
String sql = "SELECT * FROM student";
rs = stmt.executeQuery(sql);
// 将查询结果添加到JTable中
table.setModel(DbUtils.resultSetToTableModel(rs));
} catch (SQLException | ClassNotFoundException se) {
se.printStackTrace();
} finally {
try {
if (rs != null) rs.close();
if (stmt != null) stmt.close();
if (conn != null) conn.close();
} catch (SQLException se) {
se.printStackTrace();
}
}
}
public static void main(String[] args) {
new DataOperateDemo();
}
}
java: 找不到符号
符号: 方法 resultSetToTableModel(java.sql.ResultSet)
位置: 类 org.apache.commons.dbutils.DbUtils