SOURCE CODE
EmbeddedSQLConnection
package database;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.*;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import objects.SQLCUSTOMER;
public class EmbeddedSQLConnection
private Connection con;
public EmbeddedSQLConnection()
public void getConnection()
try
if(con==null)
Class.forName("com.ibm.db2.jcc.DB2Driver").newInstance();
con=DriverManager.getConnection("jdbc:db2://localhost:50001/SAMPLE","db2inst1","password");
}
System.out.println(con);
catch (SQLException e)
System.out.println(e.getMessage());
System.out.println(e.getErrorCode());
e.printStackTrace();
catch (Exception e)
e.printStackTrace();
public void closeConnection()
try
con.close();
con = null;
catch (SQLException e)
// TODO Auto-generated catch block
e.printStackTrace();
public boolean getCustomerInformation(SQLCUSTOMER u, String name)
{
PreparedStatement s = null;
try
String query = "SELECT customerID, name, address, city, postal_code, phone_number,
email FROM SQLCUSTOMER WHERE name = ?";
s = con.prepareStatement(query);
s.setString(1, name);
ResultSet rs=s.executeQuery();
while(rs.next())
u.changeCustomerID(rs.getInt(1));
u.changeName(rs.getString(2));
u.changeAddress(rs.getString(3));
u.changeCity(rs.getString(4));
u.changePostalCode(rs.getString(5));
u.changePnoneNumber(rs.getString(6));
u.changeEmail(rs.getString(7));
catch (SQLException e1)
// TODO Auto-generated catch block
e1.printStackTrace();
return true;
public boolean addCustomer(int customerID, String name, String address, String city, String
postal_code, String phone_number, String email)
{
PreparedStatement s = null;
try
String query = "INSERT INTO SQLCUSTOMER (customerID, name, address, city,
postal_code, phone_number, email) VALUES (?,?,?,?,?,?,?)";
System.out.println(name);
s = con.prepareStatement(query);
s.setInt(1, customerID);
s.setString(2, name);
s.setString(3, address);
s.setString(4, city);
s.setString(5, postal_code);
s.setString(6, phone_number);
s.setString(7, email);
s.execute();
catch (SQLException e1)
// TODO Auto-generated catch block
e1.printStackTrace();
return true;
public boolean removeCustomer(int customerID)
{
PreparedStatement s = null;
try
String query = "DELETE FROM SQLCUSTOMER WHERE customerID = ?";
s = con.prepareStatement(query);
s.setInt(1, customerID);
s.execute();
catch (SQLException e1)
// TODO Auto-generated catch block
e1.printStackTrace();
return true;
public boolean updateCustomer(int customerID, String name, String address, String city, String
postal_code, String phone_number, String email)
PreparedStatement s = null;
try
String query = "Update SQLCUSTOMER SET (name, address, city, postal_code,
phone_number, email) = (?,?,?,?,?,?) WHERE customerID = ?";
s = con.prepareStatement(query);
s.setString(1, name);
s.setString(2, address);
s.setString(3, city);
s.setString(4, postal_code);
s.setString(5, phone_number);
s.setString(6, email);
s.setInt(7, customerID);
s.execute();
catch (SQLException e1)
// TODO Auto-generated catch block
e1.printStackTrace();
return true;
}
MainFrame.jave
package gui;
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
import database.EmbeddedSQLConnection;
import objects.SQLCUSTOMER;
public class MainFrame extends JFrame {
// Declare User
SQLCUSTOMER u = new SQLCUSTOMER();
EmbeddedSQLConnection x = new EmbeddedSQLConnection();
/***********************************************************************
* NORTH PANEL DECLARATIONS
**********************************************************************/
private JPanel northPanel = new JPanel();
JTextField name = new JTextField(20);
JButton search = new JButton("Search");
/***********************************************************************
* SOUTH PANEL DECLARATIONS
**********************************************************************/
private JPanel southPanel = new JPanel();
JButton customerInformation = new JButton("Customer Information");
/***********************************************************************
* CUSTOMER PANEL DECLARATIONS
**********************************************************************/
JPanel customerInformationPanel = new JPanel();
JTextField customerID = new JTextField(20);
JTextField eName = new JTextField(20);
JTextField address = new JTextField(20);
JTextField city = new JTextField(20);
JTextField postal_code = new JTextField(20);
JTextField phone_number = new JTextField(20);
JTextField email = new JTextField(20);
JButton add = new JButton("Add");
JButton delete = new JButton("Delete");
JButton update = new JButton("Update");
JPanel addCustomerPanel = new JPanel();
JButton addToDB = new JButton("Add");
public MainFrame()
super();
/***********************************************************************
* NORTH PANEL
**********************************************************************/
// Add contents to northPanel
northPanel.add(new JLabel("Name:"));
northPanel.add(name);
northPanel.add(search);
search.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
Search();
});
add(northPanel, BorderLayout.NORTH);
/***********************************************************************
* SOUTH PANEL
**********************************************************************/
// Add contents to southPanel
southPanel.setLayout(new GridLayout(1, 1));
southPanel.add(customerInformation);
customerInformation.setEnabled(false);
southPanel.add(add);
customerInformation.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
CustomerInformation();
});
add.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
Add();
});
add(southPanel, BorderLayout.SOUTH);
public void Search()
JPanel searchPanel = new JPanel();
searchPanel.setLayout(new GridLayout(0, 1));
//5.1 Incorporating SELECT with the Application
x.getConnection();
x.getCustomerInformation(u, name.getText());
x.closeConnection();
System.out.println("text = " + name.getText() + " name = " );
if (name.getText().equals (u.getName()))
customerID.setText("");
eName.setText("");
address.setText("");
city.setText("");
postal_code.setText("");
phone_number.setText("");
email.setText("");
customerInformation.setEnabled(true);
CustomerInformation();
else
InvalidNameMessage();
public void CustomerInformation()
customerInformationPanel.removeAll();
customerInformationPanel.setBorder(BorderFactory
.createTitledBorder("Customer Information"));
customerInformationPanel.setLayout(new GridLayout(11, 2));
customerInformationPanel.add(new JLabel(new String("Customer ID: " )));
customerInformationPanel.add(customerID);
customerID.setEnabled(true);
customerInformationPanel.add(new JLabel(new String("Name: " )));
customerInformationPanel.add(eName);
customerInformationPanel.add(new JLabel(new String("Address: " )));
customerInformationPanel.add(address);
customerInformationPanel.add(new JLabel(new String("City: " )));
customerInformationPanel.add(city);
customerInformationPanel.add(new JLabel(new String("Postal Code: " )));
customerInformationPanel.add(postal_code);
customerInformationPanel.add(new JLabel(new String("Telephone Number: " )));
customerInformationPanel.add(phone_number);
customerInformationPanel.add(new JLabel(new String("Email: " )));
customerInformationPanel.add(email);
customerID.setText(String.valueOf(u.getCustomerID()));
eName.setText(u.getName());
address.setText(u.getAddress());
city.setText(u.getCity());
postal_code.setText(u.getPostalCode());
phone_number.setText(u.getPhoneNumber());
email.setText(u.getEmail());
customerInformationPanel.add(delete);
customerInformationPanel.add(update);
delete.setEnabled(true);
update.setEnabled(true);
delete.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
{
Delete();
});
update.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
Update();
});
JOptionPane.showMessageDialog(null, customerInformationPanel);
public void Add()
customerID.setText("");
eName.setText("");
address.setText("");
city.setText("");
postal_code.setText("");
phone_number.setText("");
email.setText("");
addCustomerPanel.removeAll();
addCustomerPanel.setBorder(BorderFactory
.createTitledBorder("Customer Information"));
addCustomerPanel.setLayout(new GridLayout(12, 2));
// db2
addCustomerPanel.add(new JLabel(new String("Customer ID: ")));
addCustomerPanel.add(customerID);
addCustomerPanel.add(new JLabel(new String("Name: " )));
addCustomerPanel.add(eName);
addCustomerPanel.add(new JLabel(new String("Address: " )));
addCustomerPanel.add(address);
addCustomerPanel.add(new JLabel(new String("City: " )));
addCustomerPanel.add(city);
addCustomerPanel.add(new JLabel(new String("Postal Code: " )));
addCustomerPanel.add(postal_code);
addCustomerPanel.add(new JLabel(new String("Telephone Number: " )));
addCustomerPanel.add(phone_number);
addCustomerPanel.add(new JLabel(new String("Email: " )));
addCustomerPanel.add(email);
addCustomerPanel.add(addToDB);
addToDB.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
AddToDB();
});
JOptionPane.showMessageDialog(null, addCustomerPanel);
public void AddToDB()
String stringText;
int intText = 0;
stringText = new String(customerID.getText());
try
intText = Integer.parseInt(stringText);
} catch (NumberFormatException e)
if (intText != 0)
//6.1 Incorporating INSERT with the Application
x.getConnection();
x.addCustomer(intText, eName.getText(), address.getText(), city.getText(),
postal_code.getText(), phone_number.getText(), email.getText());
x.closeConnection();
JOptionPane.showMessageDialog(null, eName.getText() + " has been added to the
Database");
public void Delete()
//db2
x.getConnection();
x.removeCustomer(u.getCustomerID());
x.closeConnection();
u.removeCustomer();
JOptionPane.showMessageDialog(null, "Customer has been deleted from the Database");
delete.setEnabled(false);
update.setEnabled(false);
}
public void Update()
//db2
x.getConnection();
x.updateCustomer(u.getCustomerID(), eName.getText(), address.getText(), city.getText(),
postal_code.getText(), phone_number.getText(), email.getText());
x.closeConnection();
u.removeCustomer();
JOptionPane.showMessageDialog(null, "Customer has been updated in the Database");
delete.setEnabled(false);
update.setEnabled(false);
/**
* Task: Notify User of incorrect name compared to the SQLCUSTOMER Table.
*/
public void InvalidNameMessage()
JOptionPane.showMessageDialog(null, "This Customer does not exist in the Database");
}
Main.java
package gui;
import javax.swing.JFrame;
public class Main {
public static void main(String[] args)
MainFrame mainPage = new MainFrame();
mainPage.setTitle("Embedded SQL in an Application");
mainPage.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
mainPage.setSize(500, 100);
mainPage.setVisible(true);
}
SQLCUSTOMER.java
package objects;
public class SQLCUSTOMER {
private int customer_ID = 0;
private String name = null;
private String address = null;
private String city = null;
private String postal_code = null;
private String phone_number = null;
private String email = null;
public SQLCUSTOMER()
public void changeCustomerID(int customerID)
this.customer_ID = customerID;
public void changeName(String name)
this.name = name;
public void changeAddress(String address)
this.address = address;
public void changeCity(String city)
this.city = city;
}
public void changePostalCode(String postalCode)
this.postal_code = postalCode;
public void changePnoneNumber(String phoneNumber)
this.phone_number = phoneNumber;
public void changeEmail(String email)
this.email = email;
public int getCustomerID()
return customer_ID;
public String getName()
return name;
public String getAddress()
return address;
public String getCity()
return city;
}
public String getPostalCode()
return postal_code;
public String getPhoneNumber()
return phone_number;
public String getEmail()
return email;
public Boolean removeCustomer()
customer_ID = 0;
name = null;
address = null;
city = null;
postal_code = null;
phone_number = null;
email = null;
return true;
}
USER MANUAL
Add Customer
Search Customer
Update Customer
Search after Update
Delete after Customer
Search after Delete