用Java代码实现有用户界面的学生社团团员信息管理系统数据库实现以下功能:定义数据库表结构。可以创建一个名为studentclubmember的表其中包含以下字段: id:主键自增长 name:学生姓名 gender:性别 age:年龄 major:专业 club_name:所属社团名称 position:担任职位 连接数据库。使用Java中的JDBC API连接MySQL数据库并获取操作表的链接
由于涉及到用户界面设计,需要使用Java的Swing或JavaFX等GUI库来实现。以下是一个简单的示例代码,实现了基本的数据库连接和数据操作功能,但需要根据实际需求进行修改和完善。
import java.sql.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class StudentClubMemberManager extends JFrame implements ActionListener {
private static final String DB_URL = "jdbc:mysql://localhost:3306/mydb";
private static final String DB_USER = "root";
private static final String DB_PASSWORD = "123456";
private JLabel nameLabel, genderLabel, ageLabel, majorLabel, clubLabel, positionLabel;
private JTextField nameField, ageField, majorField, positionField;
private JComboBox<String> genderBox, clubBox;
private JButton addButton, deleteButton, updateButton, searchButton;
private JList<String> memberList;
private DefaultListModel<String> listModel;
private Connection conn;
private PreparedStatement stmt;
public StudentClubMemberManager() {
super("学生社团团员信息管理系统");
// 初始化界面组件
nameLabel = new JLabel("姓名:");
genderLabel = new JLabel("性别:");
ageLabel = new JLabel("年龄:");
majorLabel = new JLabel("专业:");
clubLabel = new JLabel("所属社团:");
positionLabel = new JLabel("担任职位:");
nameField = new JTextField(20);
ageField = new JTextField(5);
majorField = new JTextField(20);
positionField = new JTextField(20);
genderBox = new JComboBox<String>(new String[] {"男", "女"});
clubBox = new JComboBox<String>(new String[] {"足球社", "篮球社", "乒乓球社", "游戏社"});
addButton = new JButton("添加");
deleteButton = new JButton("删除");
updateButton = new JButton("更新");
searchButton = new JButton("查询");
listModel = new DefaultListModel<String>();
memberList = new JList<String>(listModel);
// 设置布局
JPanel inputPanel = new JPanel(new GridLayout(6, 2));
inputPanel.setBorder(BorderFactory.createTitledBorder("录入信息"));
inputPanel.add(nameLabel);
inputPanel.add(nameField);
inputPanel.add(genderLabel);
inputPanel.add(genderBox);
inputPanel.add(ageLabel);
inputPanel.add(ageField);
inputPanel.add(majorLabel);
inputPanel.add(majorField);
inputPanel.add(clubLabel);
inputPanel.add(clubBox);
inputPanel.add(positionLabel);
inputPanel.add(positionField);
JPanel buttonPanel = new JPanel(new FlowLayout());
buttonPanel.add(addButton);
buttonPanel.add(deleteButton);
buttonPanel.add(updateButton);
buttonPanel.add(searchButton);
JScrollPane listScrollPane = new JScrollPane(memberList);
JPanel mainPanel = new JPanel(new BorderLayout());
mainPanel.add(inputPanel, BorderLayout.NORTH);
mainPanel.add(buttonPanel, BorderLayout.CENTER);
mainPanel.add(listScrollPane, BorderLayout.SOUTH);
setContentPane(mainPanel);
pack();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 添加事件监听器
addButton.addActionListener(this);
deleteButton.addActionListener(this);
updateButton.addActionListener(this);
searchButton.addActionListener(this);
// 连接数据库
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection(DB_URL, DB_USER, DB_PASSWORD);
stmt = conn.prepareStatement("insert into studentclubmember(name, gender, age, major, club_name, position) values (?, ?, ?, ?, ?, ?)");
} catch (Exception e) {
e.printStackTrace();
JOptionPane.showMessageDialog(this, "数据库连接失败:" + e.getMessage(), "错误", JOptionPane.ERROR_MESSAGE);
System.exit(1);
}
}
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource() == addButton) {
// 添加团员信息
String name = nameField.getText().trim();
String gender = (String) genderBox.getSelectedItem();
int age = Integer.parseInt(ageField.getText().trim());
String major = majorField.getText().trim();
String clubName = (String) clubBox.getSelectedItem();
String position = positionField.getText().trim();
try {
stmt.setString(1, name);
stmt.setString(2, gender);
stmt.setInt(3, age);
stmt.setString(4, major);
stmt.setString(5, clubName);
stmt.setString(6, position);
int rows = stmt.executeUpdate();
if (rows > 0) {
listModel.addElement(name + " (" + clubName + ")");
clearFields();
}
} catch (Exception ex) {
ex.printStackTrace();
JOptionPane.showMessageDialog(this, "添加团员信息失败:" + ex.getMessage(), "错误", JOptionPane.ERROR_MESSAGE);
}
} else if (e.getSource() == deleteButton) {
// 删除团员信息
int index = memberList.getSelectedIndex();
if (index >= 0) {
String name = listModel.getElementAt(index);
try {
Statement deleteStmt = conn.createStatement();
int rows = deleteStmt.executeUpdate("delete from studentclubmember where name='" + name + "'");
if (rows > 0) {
listModel.removeElementAt(index);
}
} catch (Exception ex) {
ex.printStackTrace();
JOptionPane.showMessageDialog(this, "删除团员信息失败:" + ex.getMessage(), "错误", JOptionPane.ERROR_MESSAGE);
}
}
} else if (e.getSource() == updateButton) {
// 更新团员信息
int index = memberList.getSelectedIndex();
if (index >= 0) {
String name = nameField.getText().trim();
String gender = (String) genderBox.getSelectedItem();
int age = Integer.parseInt(ageField.getText().trim());
String major = majorField.getText().trim();
String clubName = (String) clubBox.getSelectedItem();
String position = positionField.getText().trim();
String oldName = listModel.getElementAt(index);
try {
Statement updateStmt = conn.createStatement();
int rows = updateStmt.executeUpdate("update studentclubmember set name='" + name + "', gender='" + gender + "', age=" + age + ", major='" + major + "', club_name='" + clubName + "', position='" + position + "' where name='" + oldName + "'");
if (rows > 0) {
listModel.setElementAt(name + " (" + clubName + ")", index);
}
} catch (Exception ex) {
ex.printStackTrace();
JOptionPane.showMessageDialog(this, "更新团员信息失败:" + ex.getMessage(), "错误", JOptionPane.ERROR_MESSAGE);
}
}
} else if (e.getSource() == searchButton) {
// 查询团员信息
String name = nameField.getText().trim();
String clubName = (String) clubBox.getSelectedItem();
try {
Statement selectStmt = conn.createStatement();
String sql = "select name, club_name from studentclubmember where 1=1";
if (!name.isEmpty()) {
sql += " and name='" + name + "'";
}
if (!clubName.equals("全部")) {
sql += " and club_name='" + clubName + "'";
}
ResultSet rs = selectStmt.executeQuery(sql);
listModel.clear();
while (rs.next()) {
String memberName = rs.getString("name");
String memberClub = rs.getString("club_name");
listModel.addElement(memberName + " (" + memberClub + ")");
}
} catch (Exception ex) {
ex.printStackTrace();
JOptionPane.showMessageDialog(this, "查询团员信息失败:" + ex.getMessage(), "错误", JOptionPane.ERROR_MESSAGE);
}
}
}
private void clearFields() {
nameField.setText("");
genderBox.setSelectedIndex(0);
ageField.setText("");
majorField.setText("");
clubBox.setSelectedIndex(0);
positionField.setText("");
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
new StudentClubMemberManager().setVisible(true);
}
});
}
}
``
原文地址: https://www.cveoy.top/t/topic/fHPE 著作权归作者所有。请勿转载和采集!