CS506-Assignment 2 Solution Spring
CS506-Assignment 2 Solution Spring
Id; Bc180404611
Runners.java
public Runner() {
DbHe1per.java:
package cs506•
// Establish connection
conn = DriverManager.getConnect10n url
} catch (ClassNotFoundException I SQLException e)
{
e.printStackTrace();
JOptionPane.showMessageDialog(null, "Connection to database failed: " + e.getMessage());
return conn;
public boolean insertRunner(String name, double time) { string sql
"INSERT INTO runners(name, time) VALUES(?
while (rs.next()) {
Runner runner = new Runner(rs.getlnt("id"), rs.getString("name"), rs.getDouble("time"));
runners.add(runner);
} catch (SQLException e) {
e.printStackTrace();
JOptionPane.showMessageDialog(null, "Fetching runners failed: + e.getMessage()); return
runners;
} catch (SQLException e
e.printStackTrace();
JOptionPane.showMessageDialog(null, "Deleting all runners failed: " + e.getMessage());
while (rs.next()) {
Runner runner = new Runner(rs.getlnt("id"), rs.getString("name"), rs.getDouble("time"));
runners.add(runner);
} catch (SQLException e) {
e.printStackTrace();
JOptionPane.showMessageDialog(null, "Fetching top three runners failed: + e.getMessage()); return
runners;
MainClass.java:
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jPane14.setLayout(jPane14Layout); jPane14Layout.setHorizontalGroup( j
PaneÍ4Layout.createParallelGroup(j avax. swing. GroupLayout.Alignment.LEADING)
.addGroup(jPane14Layout.createSequentialGroup() .addGap(30,
.addGroup(jPane14Layout.createParallelGroup(javax.swmg.GroupLayout.Alignment.TRAILING,
false) .addComponent(viewWinnerBtn, javax.swing.GroupLayout.DEFAULT SIZE
javax.swing.GroupLayout.DEFAULT SIZE, Short.MAX VALUE)
SIZE
javax.swing.GroupLayout.DEFAULT SIZE, Short.MAX VALUE)
SIZE
javax.swing.GroupLayout.DEFAULT SIZE, Short.MAX VALUE)
. addGroup(j avax. swing.GroupLayout.Alignment.LEADING, j Pane14Layout.create
SequentialGroup() .addGap(16, 16, 16)
SIZE, 104
javax.swing.GroupLayout.PREFERRED SIZE))
.addContainerGap(javax.swing.GroupLayout.DEFAULT SIZE Short.MAX VALUE))
jPane14Layout.setVerticalGroup( j Pane14Layout.createParallelGroup(j
avax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPane14Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jLabe13)
.addPreferredGap(j avax. swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(loadDataBtn)
.addGap(18, 18, 18)
.addComponent(deleteDataBtn)
.addGap(18, 18, 18)
.addComponent(viewWinnerBtn)
.addContainerGap(117, Short.MAX VALUE))
.addGroup(jPane12Layout.createSequentialGroup()
avax.swing.GroupLayout.Alignment.LEADING)
SIZE javax.swing.GroupLayout.DEFAULT SIZE, Short.MAX VALUE)
SIZE
javax.swing.GroupLayout.DEFAULT SIZE, Short.MAX VALUE)) .addContainerGap()) y, j
Pane12Layout.setVerticalGroup( j Pane12Layout.createParallelGroup(j avax. swing.
GroupLayout.Alignment.LEADING)
.addGroup(jPane12Layout.createSequentialGroup()
jPane18Layout.setVerticalGroup( jPane18Layout.createParallelGroup(javax.swing.
roupLayout.Alignment. EADING)
.addComponent(dataLabe1, javax.swing.GroupLayout.DEFAULT SIZE, 24, Short.MAX VALUE)
y,
new String [] {
"No", "Name", "Time"
y, jPane15Layout.setVerticalGroup( jPane15Layout.createParallelGroup(j
avax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPane15Layout.createSequentialGroup() .addContainerGa
p()
SIZE
javax.swing.GroupLayout.DEFAULT SIZE, javax.swing.GroupLayout.PREFERRED SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
SIZE
javax.swing.GroupLayout.DEFAULT SIZE, javax.swing.GroupLayout.PREFERRED SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
SIZE
javax.swing.GroupLayout.DEFAULT SIZE, javax.swing.GroupLayout.PREFERRED SIZE)
.addPreferredGap(j avax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
SIZE
javax.swing.GroupLayout.DEFAULT SIZE, javax.swing.GroupLayout.PREFERRED SIZE)
.addContainerGap(javax.swing.GroupLayout.DEFAULT SIZE, Short.MAX VALUE))
y,
pack();
setLocationRelativeTo(null); }
// </editor-fold>
JOptionPane.showMessageDialog(this, message.toString());
// Update or load data into a JTable
DefaultTab1eM0de1 model new DefaultTab1eM0de1()•,
model.setColumnIdentifiers(new String[] {"ID", "Name", "Time"});
for (int i = 0; i < runners.size(); i++) { Runner runner = runners.get(i);
model.addRow(new Object[] {i + l, runner.getName(), runner.getTime()});
updateTable(runners);
// Show developer information after user clicks "OK"
return•
return;