0% found this document useful (0 votes)
89 views18 pages

Java Runner Database Management System

Uploaded by

Xtylish Mughal
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
89 views18 pages

Java Runner Database Management System

Uploaded by

Xtylish Mughal
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd

CS .

506- Web Design and development

Assignment No. 2 Solution

Semester; Spring 2024

Id; Bc180404611

[Link]

* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/[Link] to change this license

public class Runner {

static void clear() {

throw new UnsupportedOperationException("Not supported yet. 't); // Generated from


nbfs://nbhost/SystemFileSystem/Templates/Classes/Code/GeneratedMethodBody
private int id;
private String
name; private
double time;

public Runner() {

public Runner(int id, String name, double time)


{ [Link] = id; [Link] = name; [Link] =
time;

public Runner(String name, double time)


{ [Link] = name; [Link] = time;
public int getld() {
return id;

public voidsetld(int Mpjunaid id)


[Link] = id;

public String getName()


{ return name;
public void setName(String name)
{ [Link] = name;

public double getTime() {


return time;

public void setTime(double time)


{ [Link] = time;

[Link]:
package cs506•

import [Link].*• import j


[Link]; import
[Link]; import j
[Link]; public
class Dbl-lelper {

private Connection connect() { //


UCanAccess connection string
String url= "jdbc:ucanaccess://assests/BC230401111 . ccdb'
Connection conn = null;

// Load the UCanACCess JDBC dri


[Link]("[Link]");

// Establish connection
conn = DriverManager.getConnect10n url
} catch (ClassNotFoundException I SQLException e)
{

[Link]();
[Link](null, "Connection to database failed: " + [Link]());

return conn;
public boolean insertRunner(String name, double time) { string sql
"INSERT INTO runners(name, time) VALUES(?

try (Connection conn [Link]();


PreparedStatement pstmt = [Link](sql))
{ pstmt. setString(l , name); [Link](2, time);
[Link](); return true•
} catch (SQLException e) {
[Link]();
[Link](null, "Inserting runner failed: + [Link]()); return
false•

public List<Runner> getAllRunners() { string sql "SELECT id, name, time


FROM runners ORDER BY name" , List<Runner> runners = new
ArrayList<>();

try (Connection conn [Link]();


Statement stmt = [Link]();
ResultSet rs = stmt. executeQuery(sql)) {

while ([Link]()) {
Runner runner = new Runner([Link]("id"), [Link]("name"), [Link]("time"));
[Link](runner);

} catch (SQLException e) {
[Link]();
[Link](null, "Fetching runners failed: + [Link]()); return

runners;

try (Connection conn = [Link]();


Statement stmt = [Link]()) { stmt. execute(sql);

} catch (SQLException e
[Link]();
[Link](null, "Deleting all runners failed: " + [Link]());

public List<Runner> getTopThreeRunners() {


string sql = "SELECT id, name, time FROM runners ORDER BY time ASC LIMIT 3";
List<Runner> runners = new ArrayList<>();

try (Connection conn = [Link]();


Statement stmt = [Link]();
ResultSet rs = [Link](sql)) {

while ([Link]()) {
Runner runner = new Runner([Link]("id"), [Link]("name"), [Link]("time"));
[Link](runner);

} catch (SQLException e) {
[Link]();
[Link](null, "Fetching top three runners failed: + [Link]()); return

runners;

[Link]:

* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/[Link] to change this


license * Click nbfs://nbhost/SystemFileSystem/Templates/GUIForms/[Link] to edit this
template package cs506•

import j [Link]. [Link]; import j


ava. awt. [Link]; import [Link];
import j avax. [Link]; import
[Link]; public class
MainClass extends [Link] {
public MainClass()
{ initComponents();
dbHe1per = new
DbHe1per()•,
// Add WindowListener to handle window closing event
[Link] newAVindowAdapter() {,z
@Override public void
windowClosing(WindowEvent e)
{ showDeveloperInfo();
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is always regenerated by
the Form Editor.

@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {

jPanell = new [Link](); jPane12


new [Link](); jPane13 = new
[Link](); jLabe12 = new j
[Link](); jPane14 new
[Link](); jLabe13 = new
[Link](); loadDataBtn = new
[Link](); deleteDataBtn = new
[Link](); viewWinnerBtn =- new
[Link](); jPane15 = new
[Link](); jPane16 new
[Link](); jLabell = new
[Link](); jPane17 = new
[Link](); nameLabel = new
[Link](); nameTxt = new
[Link](); timeTxt = new
[Link](); timeLabel = new
[Link](); addRunnerBtn = new
[Link](); jPane18 = new
[Link](); dataLabel = new javax.
[Link](); jPane19 = new
[Link](); j ScrollPanel = new
[Link](); j Tablel = new
[Link]();

j [Link] jPane13Layout = new [Link](jPane13)•


[Link](jPane13Layout);itipp: -r [Link]( j Panel3
[Link](j [Link]) .addComponent(jLabe12, j avax.
[Link], [Link] SIZE,
[Link] SIZE [Link] VALUE) [Link](
jPane13 [Link](j avax. swing. [Link])
.addGroup([Link]()
.addComponent(jLabe12, [Link] SIZE, 262
[Link] SIZE) .addGap(O, O, [Link] VALUE))

[Link]([Link](new [Link](0, 0, 0)));

UI", 1, 18)); // NOII 8N

[Link](new UI", 1, 18)); // NOII 8N loadDataBtn.


[Link](new [Link]()
{ public void actionPerformed(j [Link] evt)
{ loadDataBtnActionPerformed(evt);

[Link](new UI", 1, 18)); // NOII 8N


[Link]("Delete Data");
[Link](new [Link]() {
public void actionPerformed([Link] evt)
{ deleteDataBtnActionPerformed(evt);

[Link](new [Link]("Segoe UI" l, 18)); // NOII 8N


[Link]("View Winner");
[Link](new [Link]() {
public void actionPerformed(j [Link] evt)
{ viewWinnerBtnActionPerformed(evt);

[Link](jPane14Layout); [Link]( j
PaneÍ[Link](j avax. swing. [Link])
.addGroup([Link]() .addGap(30,

.addGroup([Link]([Link],
false) .addComponent(viewWinnerBtn, [Link] SIZE
[Link] SIZE, [Link] VALUE)
SIZE
[Link] SIZE, [Link] VALUE)
SIZE
[Link] SIZE, [Link] VALUE)
. addGroup(j avax. [Link], j [Link]
SequentialGroup() .addGap(16, 16, 16)
SIZE, 104
[Link] SIZE))
.addContainerGap([Link] SIZE [Link] VALUE))

[Link]( j [Link](j
[Link])
.addGroup([Link]()
.addContainerGap()
.addComponent(jLabe13)
.addPreferredGap(j avax. [Link])
.addComponent(loadDataBtn)
.addGap(18, 18, 18)
.addComponent(deleteDataBtn)
.addGap(18, 18, 18)
.addComponent(viewWinnerBtn)
.addContainerGap(117, [Link] VALUE))

j [Link] jPane12Layout = new [Link](jPane12);


[Link](jPane12Layout); [Link]( j
[Link](j avax. swing. [Link])

.addGroup([Link]()
[Link])
SIZE [Link] SIZE, [Link] VALUE)
SIZE
[Link] SIZE, [Link] VALUE)) .addContainerGap()) y, j
[Link]( j [Link](j avax. swing.
[Link])
.addGroup([Link]()

SIZE [Link] SIZE, [Link] SIZE)


.addPreferredGap(j
[Link])
SIZE
[Link] SIZE, [Link] VALUE)
.addContainerGap())v

[Link]([Link](new [Link](0, 0, 0)));

[Link](new UI", 1, 36)); // NOII 8N jLabell


.setText("Welcome to ABC Marathon");
j [Link] jPane16Layout = new [Link](jPane16);
[Link](jPane16Layout); [Link]( j
[Link] IGroup(j avax. swing.
[Link])
.addGroup([Link]()
.addGap(207, 207, 207)
.addComponent(jLabel l)
.addContainerGap([Link] SIZE, [Link] VALUE))

[Link]( j [Link](j avax. swing.


[Link])
.addGroup([Link]()
.addContainerGap()
.addComponent(jLabell)
.addContainerGap(18, [Link] VALUE))

jPane17 [Link](0, 0, 0)));

[Link](new UI", 1, 14)); // N0118N [Link]("Name");

[Link](new UI", 1, 14)); // NOII 8N


[Link]("Time");

UI", 1, 18)); // N0118N


[Link](new [Link]()
{ public void actionPerformed([Link] evt)
{ addRunnerBtnActionPerformed(evt);

j [Link] jPane17Layout = new j [Link](jPane17);


[Link](jPane17Layout);
[Link]( [Link]([Link].G
r upL t.A e E ING
.addGroup([Link]()
.addGap(51, 51, 51)

. addGroup(j avax. [Link], j Panel7Layout. create S equentialGroup()

.addGap(18, 18, 18)


.addComponent(timeTxt))
.addGroup([Link]()
SIZE 61
[Link] SIZE)
.addGap(18, 18, 18)
.addComponent(nameTxt, [Link] SIZE, 746
[Link] SIZED)
.addContainerGap(48, [Link] VALUE))
.addGroup(j avax. swing. [Link], j Panel7Layout. create SequentialGroup()
.addContainerGap([Link] SIZE [Link] VALUE)
SIZE 135
[Link] SIZE) .addGap(385, 385, 385))

[Link]( j [Link] IGroup(j avax. swing.


[Link])
.addGroup([Link]()
.addGap(17, 17, 17)
[Link])
.addComponent(nameLabel)
SIZE 31
[Link] SIZE))
.addPreferredGap(j avax. [Link])
[Link])
.addComponent(timeLabel)
SIZE 31
[Link] SIZE))
.addGap(18, 18, 18)
.addComponent(addRunnerBtn)
.addContainerGap([Link] SIZE, [Link] VALUE))

[Link]([Link](new [Link](0, 0, 0)));

[Link](new UI", 3, 18)); // NOII 8N


j [Link] jPane18Layout = new [Link](jPane18);
[Link](jPane18Layout); [Link]( jPanel
[Link](j avax. swing. [Link])
.addGroup(j avax. swing. [Link], j Pane18Layout. create SequentialGroup()
.addContainerGap([Link] SIZE, [Link] VALUE)
.addComponent(dataLabe1, [Link] SIZE,
194 [Link] SIZE 32

[Link]( [Link]([Link].
[Link]. EADING)
.addComponent(dataLabe1, [Link] SIZE, 24, [Link] VALUE)
y,

[Link]([Link](new [Link](0, 0, 0)));


j Table I . setModel(new j avax. [Link] DefaultTableModel(
new Object {

new String [] {
"No", "Name", "Time"

j ScrollPane I . setViewportView(j Table I ) ;


j [Link] jPane19Layout = new [Link](jPane19);
[Link](jPane19Layout);
[Link]( [Link](j
[Link])
.addGroup([Link]()
.addContainerGap()
.addComponent(j ScrollPane l)
.addContainerGap()) y, [Link]( j
[Link](j avax. swing. [Link])
.addGroup([Link]()
.addContainerGap()
.addComponent(jScr011Pane1, [Link] SIZE, 293, [Link] VALUE))

j [Link] jPane15Layout = new [Link](jPane15);


[Link](jPane15Layout);
[Link]( [Link](j
[Link])
.addGroup([Link]()
.addContainerGap()
.addGroup([Link](j
[Link])
SIZE [Link]
SIZE, [Link] VALUE)
. addComponent(jPane19 , j avax. [Link]
[Link] SIZE, [Link] SIZE [Link] VALUE)

[Link] SIZE, [Link]


SIZE) .addGap(O, [Link] VALUE

y, [Link]( [Link](j
[Link])
.addGroup([Link]() .addContainerGa
p()
SIZE
[Link] SIZE, [Link] SIZE)
.addPreferredGap([Link])
SIZE
[Link] SIZE, [Link] SIZE)
.addPreferredGap([Link])
SIZE
[Link] SIZE, [Link] SIZE)
.addPreferredGap(j [Link])
SIZE
[Link] SIZE, [Link] SIZE)
.addContainerGap([Link] SIZE, [Link] VALUE))
y,

j [Link] jPanel I Layout = new j [Link](jPanel I );


j Panel I .setLayout(jPanel I Layout); j Panel I Layout. setHorizontalGroup( j Panel I
[Link](j avax. swing. [Link])
.addGroup([Link]() .addContainerGap(
)
SIZE
[Link] SIZE, [Link] SIZE)
.addPreferredGap([Link])
SIZE
[Link] SIZE, [Link] VALUE))

j Panel I Layout. setVerticalGroup( j Panel I [Link] IGroup(j avax. swing.


[Link])
SIZE
[Link] SIZE, [Link] VALUE)
.addGroup(jPanel I Layout. create SequentialGroup()
SIZE
[Link] SIZE, [Link] SIZE)
.addGap(O, O, [Link] VALUE))
y,

j [Link] layout = new [Link]


getContentPane().setLayout(layout layout. setHorizontalGroup( layout.
createParallelGroup(javax.
[Link] .addGroup([Link]
Group()
SIZÊ
[Link] SIZE, [Link] SIZE)
.addGap(O, O, [Link] VALUE))
y, [Link]( layout.
createParallelGroup([Link]) .addGroup(la
[Link]() .addContainerGap()
SIZE
[Link] SIZE,
[Link] SIZE) .addContainerGap(130,
[Link] VALUE))

pack();
setLocationRelativeTo(null); }
// </editor-fold>

private void loadDataBtnActionPerformed([Link] evt)


{ List<Runner> runners = [Link]();
updateTable(runners); [Link]("All Runners");

private void deleteDataBtnActionPerformed([Link] evt) {


// Delete all data from the database int confirm = [Link](null, "Do you want to
remove all runners' data from database?"
"Confirm Delete", [Link] NO OPTION); if
(confirm [Link] OPTION) {
// User confirmed deletion
[Link]();
updateTable(null); // Clear the
table [Link]("Data
Deleted");
} else {
// User cancelled deletion
[Link]("Deletion Cancelled");

private void viewWinnerBtnActionPerformed([Link] evt) {


// Find the top three runners
List<Runner> runners = [Link](); if ([Link]())
{ [Link]("No runners available"); return; else {
StringBuilder message = new StringBuilder("Top Three Winners:\n"); for (int i = 0; i <
[Link](); i++NApp:
Runner runner = [Link](i);
[Link](i + l).append( .
.append([Link]()).append(" with time ") .append([Link]()).append("\
n");

[Link](this, [Link]());
// Update or load data into a JTable
DefaultTab1eM0de1 model new DefaultTab1eM0de1()•,
[Link](new String[] {"ID", "Name", "Time"});
for (int i = 0; i < [Link](); i++) { Runner runner = [Link](i);
[Link](new Object[] {i + l, [Link](), [Link]()});

updateTable(runners);
// Show developer information after user clicks "OK"

private void showDeveloperInfo()


{ string student1D = "03074960034"
String studentName = "M junaid Qazi"

// Custom message with thanks and developer info


String message = "Thanks for using ABC Marathon!\n\nDeveloped By:" + studentName + " + studentID +

// Display developer information in a message dialog


[Link](this, message,
"Developer Info", JOptionPane.1NFORMATION MESSAGE);

private void [Link] evt) {


// Add a new runner to the database String name =
[Link](); double time; try { time =
[Link]([Link]());
} catch (NumberFormatException e) {

return•
return;

boolean success = [Link](name, time);


if (success) {
List<Runner> runners =
[Link](); updateTable(runners);
[Link](""); [Link]("");
[Link]("Runner Added");
} else { [Link]("Failed to add
runner");

private void updateTable(List<Runner> runners) {


DefaultTab1eM0de1 model = (DefaultTab1eM0de1) jTab1e 1.getM0de1();
[Link](0); // Clear the existing rows
if (runners != null) { for (Runner runner : runners) { [Link](new Object[]
{[Link](), [Link](), [Link]()});

@param args the command line arguments

public static void main(String args[]) {


/* Set the Nimbus look and feel */
//<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
/* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
* For details see [Link]

try { for ([Link] info :


[Link]()) { if ("Nimbus" .equals([Link]())) { j
[Link]. break;

} catch (ClassNotFoundException ex)


{ [Link]([Link]()).log([Link], null,
ex); } catch (InstantiationException ex)
{ [Link]([Link]()).log([Link], null,
ex); } catch (IllegalAccessException ex)
{ [Link]([Link]()).log([Link], null,
ex); } catch ([Link] ex)
[Link]([Link]()).log([Link], null, ex);

/* Create and display the form */


[Link](new Runnable()
{ public void run() { new
MainClass().setVisible(true);
// Variables declaration - do not modify
private javax. [Link] addRunnerBtn;
private [Link] dataLabel; private
[Link] deleteDataBtn; private j
avax. [Link] j Labell • private j
[Link] jLabe12; private j avax.
[Link] j Labe13 • private j avax.
[Link] jPanel I • private j avax.
[Link] jPane12 ; private j avax.
[Link] jPane13 ; private j avax.
[Link] jPane14; private j avax.
[Link] j Pane15 ; private j avax.
[Link] jPane16; private
[Link] jPane17; private j avax.
[Link] jPane18; private j avax.
[Link] jPane19 ; private j avax.
[Link] j ScrollPane I • private j
avax. [Link] j Table I • private javax.
[Link] loadDataBtn; private
[Link] nameLabel; private
[Link] nameTxt; private
[Link] timeLabel; private
[Link] timeTxt; private
[Link] viewWinnerBtn; // End
of variables declaration
Name Time Anus 100 goshi 110 Junaid
220 kala 18.0 Muhammad 110
Qazi 11.0

You might also like