Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Can you rewrite the following JAVA code in a different way but to do the same jo

ID: 3689340 • Letter: C

Question

Can you rewrite the following JAVA code in a different way but to do the same job:

import com.mysql.jdbc.Connection;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.table.DefaultTableModel;

public class DatabaseContent extends JFrame implements ActionListener {

private static final String DB_NAME = "mydatabase";
private static final String DB_URL = "jdbc:mysql://localhost/" + DB_NAME;
private static final String DB_USERNAME = "root";
private static final String DB_PASSWORD = "";

private Connection dbConnection;
private JTextField tableNameField = new JTextField(30);
private JTable resultsTable = new JTable(new DefaultTableModel());

// Initialize the layout
public DatabaseContent() {
setTitle("Exercise35_03");
setSize(800, 500);
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLayout(new BorderLayout());

JPanel inputPanel = new JPanel(new FlowLayout());
add(BorderLayout.NORTH, inputPanel);

inputPanel.add(new JLabel("Table Name "));
inputPanel.add(tableNameField);

JButton showContentsButton = new JButton("Show Contents");
showContentsButton.addActionListener(this);
inputPanel.add(showContentsButton);
  
add(BorderLayout.CENTER, new JScrollPane(resultsTable));

// Connect to the database
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
dbConnection = (Connection) DriverManager.getConnection(DB_URL, DB_USERNAME, DB_PASSWORD);
} catch (Exception e) {
e.printStackTrace(System.out);
System.exit(0);
}
}

// Handle the event of the button
@Override
public void actionPerformed(ActionEvent e) {
String tableName = tableNameField.getText().trim();

if (tableName.isEmpty()) {
JOptionPane.showMessageDialog(this, "Please enter a table name.");
return;
}

try {
// Query all the details of the table
PreparedStatement ps = dbConnection.prepareStatement("SELECT * FROM " + tableName);
  
ResultSet rs = ps.executeQuery();
ResultSetMetaData setMetaData = rs.getMetaData();

DefaultTableModel model = new DefaultTableModel();

for (int col = 0; col < setMetaData.getColumnCount(); col++) {
model.addColumn(setMetaData.getColumnName(col + 1));
}
  
while(rs.next()) {
Object[] row = new Object[setMetaData.getColumnCount()];
  
for (int i = 0; i < row.length; i++) {
row[i] = rs.getObject(i + 1);
}
  
model.addRow(row);
}
  
resultsTable.setModel(model);
} catch (Exception ex) {
JOptionPane.showMessageDialog(this, ex.getMessage());
}
}

// Entry point of the program
public static void main(String[] args) {
new DatabaseContent().setVisible(true);
}
}

Explanation / Answer

DatabaseContentDemo.java

import com.mysql.jdbc.Connection;//jdbc connection package
import java.awt.BorderLayout;//layout packages
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;//action listentenr packages
import java.awt.event.ActionListener;
import java.sql.DriverManager;//sql packages
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import javax.swing.JButton;//jcomponent packages
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.table.DefaultTableModel;
class DatabaseContent extends JFrame implements ActionListener {
  
private Connection dbConnection;
private JTextField tableNameField = new JTextField(30);
private JTable resultsTable = new JTable(new DefaultTableModel());
// Initialize the layout
public DatabaseContent() {//constructor
setTitle("Exercise35_03");
setSize(800, 500);
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLayout(new BorderLayout());
JPanel inputPanel = new JPanel(new FlowLayout());
add(BorderLayout.NORTH, inputPanel);
inputPanel.add(new JLabel("Table Name "));
inputPanel.add(tableNameField);
JButton showContentsButton = new JButton("Show Contents");
showContentsButton.addActionListener(this);
inputPanel.add(showContentsButton);

add(BorderLayout.CENTER, new JScrollPane(resultsTable));
// Connect to the database
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
dbConnection = (Connection) DriverManager.getConnection( "jdbc:mysql://localhost/CODINGGROUND", "root", "root");
} catch (Exception e) {
e.printStackTrace(System.out);
System.exit(0);
}
}
// Handle the event of the button
@Override
public void actionPerformed(ActionEvent e) {
String tableName = tableNameField.getText().trim();
if (tableName.isEmpty()) {
JOptionPane.showMessageDialog(this, "Please enter a table name.");
return;
}
try {
// Query all the details of the table
PreparedStatement ps = dbConnection.prepareStatement("SELECT * FROM " + tableName);

ResultSet rs = ps.executeQuery();
ResultSetMetaData setMetaData = rs.getMetaData();
DefaultTableModel model = new DefaultTableModel();
for (int col = 0; col < setMetaData.getColumnCount(); col++) {
model.addColumn(setMetaData.getColumnName(col + 1));
}

while(rs.next()) {
Object[] row = new Object[setMetaData.getColumnCount()];

for (int i = 0; i < row.length; i++) {
row[i] = rs.getObject(i + 1);
}

model.addRow(row);
}

resultsTable.setModel(model);
} catch (Exception ex) {
JOptionPane.showMessageDialog(this, ex.getMessage());
}
}}
// Entry point of the program
public class DatabaseContentDemo{//main method
public static void main(String[] args) {
JFrame f=new JFrame();
DatabaseContent d=new DatabaseContent();
d.setVisible(true);
}
}

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote