import javax.swing.
*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.*;
public class StudentManagementGUI extends JFrame {
private JTextField rollField, nameField, marksField;
private JTextArea resultArea;
private final String DB_URL = "jdbc:mysql://localhost:3306/student";
private final String DB_USER = "root";
private final String DB_PASSWORD = "";
public StudentManagementGUI() {
setLayout(new BorderLayout());
// Input Panel
JPanel inputPanel = new JPanel(new GridLayout(4, 2));
inputPanel.add(new JLabel("Roll Number:"));
rollField = new JTextField();
inputPanel.add(rollField);
inputPanel.add(new JLabel("Name:"));
nameField = new JTextField();
inputPanel.add(nameField);
inputPanel.add(new JLabel("Marks:"));
marksField = new JTextField();
inputPanel.add(marksField);
JButton addButton = new JButton("Add");
JButton retrieveButton = new JButton("Retrieve");
inputPanel.add(addButton);
inputPanel.add(retrieveButton);
// Result Area
resultArea = new JTextArea(8, 30);
resultArea.setEditable(false);
add(inputPanel, BorderLayout.NORTH);
add(new JScrollPane(resultArea), BorderLayout.CENTER);
// Add Action Listeners
addButton.addActionListener(e -> addStudent());
retrieveButton.addActionListener(e -> retrieveStudents());
// Frame Settings
setTitle("Student Management");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
pack();
setVisible(true);
}
private void addStudent() {
try (Connection conn = DriverManager.getConnection(DB_URL, DB_USER,
DB_PASSWORD)) {
String query = "INSERT INTO students (roll_number, name, marks) VALUES
(?, ?, ?)";
PreparedStatement pstmt = conn.prepareStatement(query);
pstmt.setInt(1, Integer.parseInt(rollField.getText()));
pstmt.setString(2, nameField.getText());
pstmt.setInt(3, Integer.parseInt(marksField.getText()));
pstmt.executeUpdate();
// Clear fields after adding
rollField.setText("");
nameField.setText("");
marksField.setText("");
} catch (Exception ex) {
System.out.println("Error: " + ex.getMessage());
}
}
private void retrieveStudents() {
try (Connection conn = DriverManager.getConnection(DB_URL, DB_USER,
DB_PASSWORD);
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM students")) {
// Using StringBuilder for efficient string manipulation
StringBuilder result = new StringBuilder("Roll Number\tName\tMarks\n");
while (rs.next()) {
result.append(rs.getInt("roll_number")).append("\t\t")
.append(rs.getString("name")).append("\t\t")
.append(rs.getInt("marks")).append("\n");
}
resultArea.setText(result.toString());
} catch (Exception ex) {
System.out.println("Error: " + ex.getMessage());
}
}
public static void main(String[] args) {
try {
Class.forName("com.mysql.cj.jdbc.Driver");
} catch (ClassNotFoundException e) {
System.out.println("MySQL Driver not found.");
}
SwingUtilities.invokeLater(StudentManagementGUI::new);
}
}