Mr. Markou you stress me out so freaking much
This commit is contained in:
@@ -0,0 +1,13 @@
|
||||
package com.mycompany.supplierspartsdatabase;
|
||||
|
||||
import jakarta.ws.rs.ApplicationPath;
|
||||
import jakarta.ws.rs.core.Application;
|
||||
|
||||
/**
|
||||
* Configures Jakarta RESTful Web Services for the application.
|
||||
* @author Juneau
|
||||
*/
|
||||
@ApplicationPath("resources")
|
||||
public class JakartaRestConfiguration extends Application {
|
||||
|
||||
}
|
@@ -0,0 +1,20 @@
|
||||
package com.mycompany.supplierspartsdatabase.resources;
|
||||
|
||||
import jakarta.ws.rs.GET;
|
||||
import jakarta.ws.rs.Path;
|
||||
import jakarta.ws.rs.core.Response;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author
|
||||
*/
|
||||
@Path("jakartaee9")
|
||||
public class JakartaEE9Resource {
|
||||
|
||||
@GET
|
||||
public Response ping(){
|
||||
return Response
|
||||
.ok("ping Jakarta EE")
|
||||
.build();
|
||||
}
|
||||
}
|
@@ -0,0 +1,166 @@
|
||||
/*
|
||||
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
|
||||
* Click nbfs://nbhost/SystemFileSystem/Templates/JSF/JSFManagedBean.java to edit this template
|
||||
*/
|
||||
package edu.slcc.asdv.beans;
|
||||
|
||||
import edu.slcc.asdv.bl.DBase;
|
||||
import edu.slcc.asdv.bl.supplier.DatabaseManipulationSupplier;
|
||||
import edu.slcc.asdv.bl.supplier.Supplier;
|
||||
import jakarta.annotation.PostConstruct;
|
||||
import jakarta.inject.Named;
|
||||
import jakarta.enterprise.context.SessionScoped;
|
||||
import jakarta.faces.application.FacesMessage;
|
||||
import jakarta.faces.application.FacesMessage.Severity;
|
||||
import jakarta.faces.context.FacesContext;
|
||||
import jakarta.faces.event.ComponentSystemEvent;
|
||||
import jakarta.inject.Inject;
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
@Named(value = "supplierBean")
|
||||
@SessionScoped
|
||||
public class SupplierBean implements Serializable {
|
||||
|
||||
//DBase dms = new DatabaseManipulationSupplier();
|
||||
@Inject
|
||||
DatabaseManipulationSupplier dms;
|
||||
List<Supplier> suppliers;
|
||||
|
||||
|
||||
/*
|
||||
public SupplierBean()
|
||||
{
|
||||
try
|
||||
{
|
||||
suppliers = dms.listAll();
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
suppliers = null;
|
||||
}
|
||||
}
|
||||
*/
|
||||
@PostConstruct
|
||||
public void init()
|
||||
{
|
||||
try {
|
||||
suppliers = dms.listAll();
|
||||
} catch (Exception e) {
|
||||
suppliers = null;
|
||||
}
|
||||
}
|
||||
|
||||
public DatabaseManipulationSupplier getDms()
|
||||
{
|
||||
return dms;
|
||||
}
|
||||
|
||||
public void displayExceptionMessageAtPreRenderListener(ComponentSystemEvent event)
|
||||
{
|
||||
if (suppliers == null) {
|
||||
addMessage("Database problem occured.",
|
||||
"", FacesMessage.SEVERITY_ERROR);
|
||||
}
|
||||
}
|
||||
|
||||
public List<Supplier> getSuppliers()
|
||||
{
|
||||
return suppliers;
|
||||
}
|
||||
|
||||
public void insertSupplier()
|
||||
{
|
||||
System.out.println("insertSupplier(Supplier s)");
|
||||
suppliers.add(new Supplier());
|
||||
}
|
||||
|
||||
public void deleteSupplier(Supplier s)
|
||||
{
|
||||
if (suppliers == null) {
|
||||
return;
|
||||
}
|
||||
int totalRowsUpdated = 0;
|
||||
try {
|
||||
int rowsUpdated = this.dms.delete(s);
|
||||
if (rowsUpdated > 0) {
|
||||
suppliers = dms.listAll();
|
||||
totalRowsUpdated += rowsUpdated;
|
||||
}
|
||||
} catch (Exception e) {
|
||||
String msg = ("Numbers of rows updated is 0.");
|
||||
addMessage(msg, e.getMessage(), FacesMessage.SEVERITY_ERROR);
|
||||
}
|
||||
if (totalRowsUpdated > 0) {
|
||||
String msg = ("Numbers of rows updated: " + totalRowsUpdated);
|
||||
addMessage(msg, "no exception", FacesMessage.SEVERITY_INFO);
|
||||
}
|
||||
}
|
||||
|
||||
public void deleteSupplier()
|
||||
{
|
||||
if (suppliers == null) {
|
||||
return;
|
||||
}
|
||||
int totalRowsUpdated = 0;
|
||||
for (Supplier s : this.suppliers) {
|
||||
if (s.isModify()) {
|
||||
try {
|
||||
int rowsUpdated = this.dms.delete(s);
|
||||
if (rowsUpdated > 0) {
|
||||
totalRowsUpdated += rowsUpdated;
|
||||
s.setModify(false);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
String msg = ("Numbers of rows updated is 0.");
|
||||
addMessage(msg, e.getMessage(), FacesMessage.SEVERITY_ERROR);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (totalRowsUpdated > 0) {
|
||||
try {
|
||||
suppliers = dms.listAll();
|
||||
} catch (Exception e) {
|
||||
suppliers = null;
|
||||
addMessage("Unable to obtain suppliers!", "no exception", FacesMessage.SEVERITY_INFO);
|
||||
}
|
||||
String msg = ("Numbers of rows updated: " + totalRowsUpdated);
|
||||
addMessage(msg, "no exception", FacesMessage.SEVERITY_INFO);
|
||||
}
|
||||
}
|
||||
|
||||
public void saveFromUpdate()
|
||||
{
|
||||
if (suppliers == null) {
|
||||
return;
|
||||
}
|
||||
int totalRowsUpdated = 0;
|
||||
for (Supplier s : this.suppliers) {
|
||||
if (s.isModify()) {
|
||||
try {
|
||||
int rowsUpdated = this.dms.update(s);
|
||||
if (rowsUpdated > 0) {
|
||||
System.out.println(s);
|
||||
totalRowsUpdated += rowsUpdated;
|
||||
s.setModify(false);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
String msg = ("Numbers of rows updated is 0.");
|
||||
addMessage(msg, e.getMessage(), FacesMessage.SEVERITY_ERROR);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (totalRowsUpdated > 0) {
|
||||
String msg = ("Numbers of rows updated: " + totalRowsUpdated);
|
||||
addMessage(msg, "no exception", FacesMessage.SEVERITY_INFO);
|
||||
}
|
||||
}
|
||||
|
||||
public void addMessage(String summary, String detail, Severity severity)
|
||||
{
|
||||
FacesMessage msg = new FacesMessage(severity, summary, detail);
|
||||
FacesContext.getCurrentInstance().addMessage(null, msg);
|
||||
}
|
||||
}
|
@@ -0,0 +1,30 @@
|
||||
/*
|
||||
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
|
||||
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
|
||||
*/
|
||||
package edu.slcc.asdv.bl;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.sql.SQLException;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author asdv5
|
||||
*/
|
||||
public interface DBase<T>
|
||||
{
|
||||
List<T> listAll()
|
||||
throws SQLException;
|
||||
|
||||
int update( T t)
|
||||
throws SQLException;
|
||||
|
||||
int delete( T t)
|
||||
throws SQLException;
|
||||
|
||||
|
||||
int insert( T t)
|
||||
throws SQLException;
|
||||
|
||||
}
|
@@ -0,0 +1,103 @@
|
||||
/*
|
||||
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
|
||||
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
|
||||
*/
|
||||
package edu.slcc.asdv.bl;
|
||||
|
||||
import java.sql.Connection;
|
||||
import java.sql.DriverManager;
|
||||
import java.sql.SQLException;
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author asdv5
|
||||
*/
|
||||
public class UtilitiesDatabase
|
||||
{
|
||||
public Connection connection(
|
||||
String databaseName,
|
||||
String userName,
|
||||
String password,
|
||||
String URL2
|
||||
|
||||
) //throws InstantiationException, IllegalAccessException
|
||||
{
|
||||
/*
|
||||
String databaseName = "suppliers_parts_23";
|
||||
String userName = "root";
|
||||
String password = "root";
|
||||
String URL2 = "com.mysql.jdbc.Driver";
|
||||
Connection con = null;
|
||||
*/
|
||||
Connection con;
|
||||
try
|
||||
{// Load Sun's jdbc driver
|
||||
Class.forName(URL2).newInstance();
|
||||
System.out.println("JDBC Driver loaded!");
|
||||
}
|
||||
catch (Exception e) // driver not found
|
||||
{
|
||||
System.err.println("Unable to load database driver");
|
||||
System.err.println("Details : " + e);
|
||||
return null;
|
||||
}
|
||||
String ip = "localhost"; //internet connection
|
||||
String url = "jdbc:mysql://" + ip + ":3306/" + databaseName + "?allowPublicKeyRetrieval=true&useSSL=false";
|
||||
try
|
||||
{
|
||||
con = DriverManager.getConnection(url, userName, password);
|
||||
con.setReadOnly(false);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
System.err.println(e.toString());
|
||||
return null;
|
||||
}
|
||||
System.out.println("connection successfull");
|
||||
return con;
|
||||
}
|
||||
|
||||
|
||||
public void closeDatabaseConnection( Connection con)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (con != null)
|
||||
{
|
||||
con.close();
|
||||
}
|
||||
}
|
||||
catch (SQLException e)
|
||||
{
|
||||
System.out.println(e);
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
public static java.sql.Date stringDateToSqlDate(String sDate)
|
||||
{
|
||||
java.util.Date date = null;
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
||||
try
|
||||
{
|
||||
date = sdf.parse(sDate);
|
||||
}
|
||||
catch (ParseException e)
|
||||
{
|
||||
e.printStackTrace();
|
||||
}
|
||||
return new java.sql.Date( date.getTime() );
|
||||
|
||||
}
|
||||
|
||||
|
||||
public static java.util.Date stringDateToJavaUtilitiesDate(String sDate)
|
||||
{
|
||||
java.sql.Date sqldate = stringDateToSqlDate(sDate);
|
||||
return new java.util.Date(sqldate.getTime() );
|
||||
}
|
||||
}
|
@@ -0,0 +1,104 @@
|
||||
/*
|
||||
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
|
||||
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
|
||||
*/
|
||||
package edu.slcc.asdv.bl.part;
|
||||
|
||||
import edu.slcc.asdv.bl.DBase;
|
||||
import edu.slcc.asdv.bl.UtilitiesDatabase;
|
||||
import java.sql.Connection;
|
||||
import java.sql.PreparedStatement;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author asdv5
|
||||
*/
|
||||
public class DatabaseManipulationPart implements DBase<Part>
|
||||
{
|
||||
@Override
|
||||
public List<Part> listAll()
|
||||
{
|
||||
List<Part> tableParts = new ArrayList<Part>();
|
||||
String databaseName = "suppliers_parts_23";
|
||||
String userName = "root";
|
||||
String password = "root";
|
||||
String URL2 = "com.mysql.jdbc.Driver";
|
||||
Connection con = new UtilitiesDatabase().connection(
|
||||
databaseName, userName, password, URL2);
|
||||
PreparedStatement ps = null;
|
||||
try
|
||||
{
|
||||
if (con == null)
|
||||
{
|
||||
throw new RuntimeException("cannot connect to database");
|
||||
}
|
||||
String table = "";
|
||||
ResultSet rs = null;
|
||||
String sqlStr = "SELECT * FROM part";
|
||||
//prepare statement
|
||||
ps = con.prepareStatement(sqlStr);
|
||||
//execute
|
||||
rs = ps.executeQuery();
|
||||
int row = 0;
|
||||
while (rs.next())
|
||||
{
|
||||
String pNumber = rs.getString(1);
|
||||
String pName = rs.getString(2);
|
||||
String color = rs.getString(3) + " ";
|
||||
String city = rs.getString(4) + " ";
|
||||
Part part = new Part(pNumber, pName, color, city);
|
||||
tableParts.add(part);
|
||||
row++;
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
ex.printStackTrace();
|
||||
}
|
||||
finally
|
||||
{
|
||||
try
|
||||
{
|
||||
new UtilitiesDatabase().closeDatabaseConnection(con);
|
||||
// close the resources
|
||||
if (ps != null)
|
||||
{
|
||||
ps.close();
|
||||
}
|
||||
}
|
||||
catch (SQLException sqle)
|
||||
{
|
||||
sqle.printStackTrace();
|
||||
}
|
||||
}
|
||||
return tableParts;
|
||||
}
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
DatabaseManipulationPart dmp = new DatabaseManipulationPart();
|
||||
System.out.println(dmp.listAll());
|
||||
}
|
||||
|
||||
@Override
|
||||
public int update(Part t)
|
||||
{
|
||||
throw new UnsupportedOperationException("Not supported yet."); // Generated from nbfs://nbhost/SystemFileSystem/Templates/Classes/Code/GeneratedMethodBody
|
||||
}
|
||||
|
||||
@Override
|
||||
public int delete(Part t) throws SQLException
|
||||
{
|
||||
throw new UnsupportedOperationException("Not supported yet."); // Generated from nbfs://nbhost/SystemFileSystem/Templates/Classes/Code/GeneratedMethodBody
|
||||
}
|
||||
|
||||
@Override
|
||||
public int insert(Part t) throws SQLException
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
}
|
@@ -0,0 +1,75 @@
|
||||
/*
|
||||
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
|
||||
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
|
||||
*/
|
||||
package edu.slcc.asdv.bl.part;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author asdv5
|
||||
*/
|
||||
public class Part
|
||||
{
|
||||
private String pnumber;
|
||||
private String pname;
|
||||
private String color;
|
||||
private String city;
|
||||
|
||||
public Part(String pnumber, String pname, String color, String city)
|
||||
{
|
||||
this.pnumber = pnumber;
|
||||
this.pname = pname;
|
||||
this.color = color;
|
||||
this.city = city;
|
||||
}
|
||||
|
||||
|
||||
public String getColor()
|
||||
{
|
||||
return color;
|
||||
}
|
||||
|
||||
public void setColor(String color)
|
||||
{
|
||||
this.color = color;
|
||||
}
|
||||
|
||||
public String getCity()
|
||||
{
|
||||
return city;
|
||||
}
|
||||
|
||||
public void setCity(String city)
|
||||
{
|
||||
this.city = city;
|
||||
}
|
||||
|
||||
public String getPname()
|
||||
{
|
||||
return pname;
|
||||
}
|
||||
|
||||
public void setPname(String pname)
|
||||
{
|
||||
this.pname = pname;
|
||||
}
|
||||
|
||||
public String getPnumber()
|
||||
{
|
||||
return pnumber;
|
||||
}
|
||||
|
||||
public void setPnumber(String pnumber)
|
||||
{
|
||||
this.pnumber = pnumber;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString()
|
||||
{
|
||||
return "Part{" + "pnumber=" + pnumber + ", pname=" + pname + ", color=" + color + ", city=" + city + '}';
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
@@ -0,0 +1,228 @@
|
||||
/*
|
||||
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
|
||||
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
|
||||
*/
|
||||
package edu.slcc.asdv.bl.supplier;
|
||||
|
||||
import edu.slcc.asdv.bl.DBase;
|
||||
import edu.slcc.asdv.bl.UtilitiesDatabase;
|
||||
import java.io.Serializable;
|
||||
import java.sql.Connection;
|
||||
import java.sql.PreparedStatement;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author asdv5
|
||||
*/
|
||||
public class DatabaseManipulationSupplier
|
||||
implements DBase<Supplier>, Serializable
|
||||
{
|
||||
@Override
|
||||
public List<Supplier> listAll()
|
||||
throws SQLException
|
||||
{
|
||||
// test exception code
|
||||
//if ( true)
|
||||
// throw new SQLException();
|
||||
|
||||
List<Supplier> tableSuppliers = new ArrayList<Supplier>();
|
||||
String databaseName = "suppliers_parts_23";
|
||||
String userName = "java";
|
||||
String password = "8VCS49HT2xjsEZvC";
|
||||
String URL2 = "com.mysql.jdbc.Driver";
|
||||
Connection con = new UtilitiesDatabase().connection(
|
||||
databaseName, userName, password, URL2);
|
||||
PreparedStatement ps = null;
|
||||
try
|
||||
{
|
||||
if (con == null)
|
||||
{
|
||||
throw new RuntimeException("cannot connect to database");
|
||||
}
|
||||
String table = "";
|
||||
ResultSet rs = null;
|
||||
String sqlStr = "SELECT * FROM supplier";
|
||||
//prepare statement
|
||||
ps = con.prepareStatement(sqlStr);
|
||||
//execute
|
||||
rs = ps.executeQuery();
|
||||
int row = 0;
|
||||
while (rs.next())
|
||||
{
|
||||
String sNumber = rs.getString(1);
|
||||
String sName = rs.getString(2);
|
||||
String bdate = "";
|
||||
if ( rs.getDate(3) == null )
|
||||
{
|
||||
bdate = "2000-01-01 ";
|
||||
}
|
||||
else
|
||||
bdate = rs.getDate(3) + " ";
|
||||
int status = rs.getInt(4);
|
||||
String city = rs.getString(5) + " ";
|
||||
Supplier supplier = new Supplier(sNumber, sName, bdate, status, city);
|
||||
tableSuppliers.add(supplier);
|
||||
row++;
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
ex.printStackTrace();
|
||||
throw ex;
|
||||
}
|
||||
finally
|
||||
{
|
||||
try
|
||||
{
|
||||
new UtilitiesDatabase().closeDatabaseConnection(con);
|
||||
// close the resources
|
||||
if (ps != null)
|
||||
{
|
||||
ps.close();
|
||||
}
|
||||
}
|
||||
catch (SQLException sqle)
|
||||
{
|
||||
System.out.println(sqle);
|
||||
sqle.printStackTrace();
|
||||
throw sqle;
|
||||
}
|
||||
}
|
||||
return tableSuppliers;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int update(Supplier t)
|
||||
throws SQLException
|
||||
{
|
||||
String databaseName = "suppliers_parts_23";
|
||||
String userName = "java";
|
||||
String password = "8VCS49HT2xjsEZvC";
|
||||
String URL2 = "com.mysql.jdbc.Driver";
|
||||
Connection con = new UtilitiesDatabase().connection(
|
||||
databaseName, userName, password, URL2);
|
||||
int result = 0;
|
||||
PreparedStatement updateSupplier = null;
|
||||
try
|
||||
{
|
||||
if (con == null)
|
||||
{
|
||||
throw new RuntimeException("cannot connect to database");
|
||||
}
|
||||
|
||||
|
||||
updateSupplier = con.prepareStatement(
|
||||
"UPDATE supplier SET snumber=?, sname=?, status=?, birthday=?, city=? WHERE snumber=?");
|
||||
updateSupplier.setString(1, t.getSnumber());
|
||||
updateSupplier.setString(2, t.getSname());
|
||||
updateSupplier.setInt(3, t.getStatus());
|
||||
java.sql.Date bd = UtilitiesDatabase.stringDateToSqlDate(t.getBirthday());
|
||||
updateSupplier.setDate(4, bd);
|
||||
updateSupplier.setString(5, t.getCity());
|
||||
updateSupplier.setString(6, t.getSnumber());
|
||||
result = updateSupplier.executeUpdate();
|
||||
}
|
||||
catch (SQLException ex)
|
||||
{
|
||||
System.err.println(ex.toString());
|
||||
throw ex;
|
||||
}
|
||||
finally
|
||||
{
|
||||
try
|
||||
{
|
||||
new UtilitiesDatabase().closeDatabaseConnection(con);
|
||||
// close the resources
|
||||
if (updateSupplier != null)
|
||||
{
|
||||
updateSupplier.close();
|
||||
}
|
||||
}
|
||||
catch (SQLException sqle)
|
||||
{
|
||||
sqle.printStackTrace();
|
||||
throw sqle;
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int delete(Supplier c) throws SQLException
|
||||
{
|
||||
String databaseName = "suppliers_parts_23";
|
||||
String userName = "java";
|
||||
String password = "8VCS49HT2xjsEZvC";
|
||||
String URL2 = "com.mysql.jdbc.Driver";
|
||||
Connection con = new UtilitiesDatabase().connection(
|
||||
databaseName, userName, password, URL2);
|
||||
int result = 0;
|
||||
PreparedStatement ps = null;
|
||||
try
|
||||
{
|
||||
if (con == null)
|
||||
{
|
||||
throw new RuntimeException("Database connection failed.");
|
||||
}
|
||||
String query = "DELETE FROM supplier WHERE snumber=? ";
|
||||
ps = con.prepareStatement(query);
|
||||
ps.setString(1, c.getSnumber());
|
||||
result = ps.executeUpdate();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
System.err.println(ex.toString());
|
||||
}
|
||||
finally
|
||||
{
|
||||
try
|
||||
{
|
||||
new UtilitiesDatabase().closeDatabaseConnection(con);
|
||||
// close the resources
|
||||
if (ps != null)
|
||||
{
|
||||
ps.close();
|
||||
}
|
||||
}
|
||||
catch (SQLException sqlee)
|
||||
{
|
||||
sqlee.printStackTrace();
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int insert(Supplier c) throws SQLException {
|
||||
String databaseName = "tennis-23";
|
||||
String userName = "java";
|
||||
String password = "8VCS49HT2xjsEZvC";
|
||||
String driver = "com.mysql.jdbc.Driver";
|
||||
Connection con = new UtilitiesDatabase().connection(databaseName, userName, password, driver);
|
||||
///"UPDATE supplier SET snumber=?, sname=?, status=?, birthday=?, city=? WHERE snumber=?"
|
||||
String sqlStr = "INSERT INTO suppliers (snumber, sname, status, birthday, city) VALUES (?, ?, ?, ?, ?)";
|
||||
int result = 0;
|
||||
|
||||
try (PreparedStatement ps = con.prepareStatement(sqlStr)) {
|
||||
ps.setString(1, c.getSnumber());
|
||||
ps.setString(2, c.getSname());
|
||||
ps.setInt(3, c.getStatus());
|
||||
ps.setDate(4, new java.sql.Date(c.getBirth_Date().getTime())); // Converts java.util.Date to java.sql.Date
|
||||
ps.setString(5, c.getCity());
|
||||
|
||||
result = ps.executeUpdate();
|
||||
} catch (SQLException sqle) {
|
||||
sqle.printStackTrace();
|
||||
throw sqle;
|
||||
} finally {
|
||||
new UtilitiesDatabase().closeDatabaseConnection(con);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
}
|
@@ -0,0 +1,138 @@
|
||||
/*
|
||||
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
|
||||
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
|
||||
*/
|
||||
package edu.slcc.asdv.bl.supplier;
|
||||
|
||||
import edu.slcc.asdv.bl.UtilitiesDatabase;
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author asdv5
|
||||
*/
|
||||
public class Supplier implements Serializable
|
||||
{
|
||||
private String snumber;
|
||||
private String sname;
|
||||
private String birthday;
|
||||
private int status;
|
||||
private String city;
|
||||
private Date birthday_date;
|
||||
private boolean insertFromDatatable;
|
||||
private boolean modify;
|
||||
|
||||
public boolean isModify()
|
||||
{
|
||||
return modify;
|
||||
}
|
||||
|
||||
public void setModify(boolean modify)
|
||||
{
|
||||
this.modify = modify;
|
||||
}
|
||||
|
||||
public Supplier()
|
||||
{
|
||||
this.modify = true;
|
||||
insertFromDatatable = true;
|
||||
birthday = "2000-01-01";
|
||||
birthday_date = UtilitiesDatabase.stringDateToJavaUtilitiesDate(birthday);
|
||||
}
|
||||
|
||||
public Supplier(String snumber, String sname, String birthday, int status, String city)
|
||||
{
|
||||
insertFromDatatable = false;
|
||||
this.snumber = snumber;
|
||||
this.sname = sname;
|
||||
this.birthday = birthday;
|
||||
this.status = status;
|
||||
this.city = city;
|
||||
this.modify = false;
|
||||
}
|
||||
|
||||
public boolean isInsertFromDatatable()
|
||||
{
|
||||
return insertFromDatatable;
|
||||
}
|
||||
|
||||
public void setInsertFromDatatable(boolean insertFromDatatable)
|
||||
{
|
||||
this.insertFromDatatable = insertFromDatatable;
|
||||
}
|
||||
|
||||
public String getCity()
|
||||
{
|
||||
return city;
|
||||
}
|
||||
|
||||
public void setCity(String city)
|
||||
{
|
||||
this.city = city;
|
||||
}
|
||||
|
||||
public int getStatus()
|
||||
{
|
||||
return status;
|
||||
}
|
||||
|
||||
public void setStatus(int status)
|
||||
{
|
||||
this.status = status;
|
||||
}
|
||||
|
||||
public String getBirthday()
|
||||
{
|
||||
return birthday;
|
||||
}
|
||||
|
||||
public void setBirthday(String birthday)
|
||||
{
|
||||
this.birthday = birthday;
|
||||
}
|
||||
|
||||
public Date getBirthday_date()
|
||||
{
|
||||
birthday_date = UtilitiesDatabase.stringDateToJavaUtilitiesDate(this.birthday);
|
||||
return birthday_date;
|
||||
}
|
||||
|
||||
public void setBirthday_date(Date birthday_date)
|
||||
{
|
||||
this.birthday_date = birthday_date;
|
||||
int year = this.birthday_date.getYear() + 1900;
|
||||
int month = this.birthday_date.getMonth() + 1;
|
||||
int day = this.birthday_date.getDate();
|
||||
this.birthday = Integer.toString(year) + "-"
|
||||
+ Integer.toString(month) + "-"
|
||||
+ Integer.toString(day);
|
||||
}
|
||||
|
||||
public String getSname()
|
||||
{
|
||||
return sname;
|
||||
}
|
||||
|
||||
public void setSname(String sname)
|
||||
{
|
||||
System.out.println(sname);
|
||||
this.sname = sname;
|
||||
}
|
||||
|
||||
public String getSnumber()
|
||||
{
|
||||
return snumber;
|
||||
}
|
||||
|
||||
public void setSnumber(String snumber)
|
||||
{
|
||||
this.snumber = snumber;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString()
|
||||
{
|
||||
return "Supplier{" + "snumber=" + snumber + ", sname=" + sname + ", birthday=" + birthday + ", status=" + status + ", city=" + city + '}';
|
||||
}
|
||||
}
|
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<persistence version="3.0" xmlns="https://jakarta.ee/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://jakarta.ee/xml/ns/persistence https://jakarta.ee/xml/ns/persistence/persistence_3_0.xsd">
|
||||
<!-- Define Persistence Unit -->
|
||||
<persistence-unit name="my_persistence_unit">
|
||||
|
||||
</persistence-unit>
|
||||
</persistence>
|
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<beans xmlns="https://jakarta.ee/xml/ns/jakartaee"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/beans_3_0.xsd"
|
||||
bean-discovery-mode="all">
|
||||
</beans>
|
@@ -0,0 +1,25 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE glassfish-web-app PUBLIC "-//GlassFish.org//DTD GlassFish Application Server 3.1 Servlet 3.0//EN" "http://glassfish.org/dtds/glassfish-web-app_3_0-1.dtd">
|
||||
<!--
|
||||
Copyright (c) 1997, 2018 Oracle and/or its affiliates. All rights reserved.
|
||||
|
||||
This program and the accompanying materials are made available under the
|
||||
terms of the Eclipse Public License v. 2.0, which is available at
|
||||
http://www.eclipse.org/legal/epl-2.0.
|
||||
|
||||
This Source Code may also be made available under the following Secondary
|
||||
Licenses when the conditions for such availability set forth in the
|
||||
Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
|
||||
version 2 with the GNU Classpath Exception, which is available at
|
||||
https://www.gnu.org/software/classpath/license.html.
|
||||
|
||||
SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
||||
-->
|
||||
<glassfish-web-app error-url="">
|
||||
<class-loader delegate="true"/>
|
||||
<jsp-config>
|
||||
<property name="keepgenerated" value="true">
|
||||
<description>Keep a copy of the generated servlet class' java code.</description>
|
||||
</property>
|
||||
</jsp-config>
|
||||
</glassfish-web-app>
|
@@ -0,0 +1,24 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<web-app version="5.0" xmlns="https://jakarta.ee/xml/ns/jakartaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/web-app_5_0.xsd">
|
||||
<context-param>
|
||||
<param-name>jakarta.faces.PROJECT_STAGE</param-name>
|
||||
<param-value>Development</param-value>
|
||||
</context-param>
|
||||
<servlet>
|
||||
<servlet-name>Faces Servlet</servlet-name>
|
||||
<servlet-class>jakarta.faces.webapp.FacesServlet</servlet-class>
|
||||
<load-on-startup>1</load-on-startup>
|
||||
</servlet>
|
||||
<servlet-mapping>
|
||||
<servlet-name>Faces Servlet</servlet-name>
|
||||
<url-pattern>/faces/*</url-pattern>
|
||||
</servlet-mapping>
|
||||
<session-config>
|
||||
<session-timeout>
|
||||
30
|
||||
</session-timeout>
|
||||
</session-config>
|
||||
<welcome-file-list>
|
||||
<welcome-file>faces/supplier.xhtml</welcome-file>
|
||||
</welcome-file-list>
|
||||
</web-app>
|
@@ -0,0 +1,51 @@
|
||||
<?xml version='1.0' encoding='UTF-8' ?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:h="http://xmlns.jcp.org/jsf/html">
|
||||
<h:head>
|
||||
<h:outputStylesheet library="css" name="styles.css"/>
|
||||
<title>Supplier Parts DB</title>
|
||||
</h:head>
|
||||
<h:body>
|
||||
|
||||
<h:form>
|
||||
<h1> Suppliers-Parts Database </h1>
|
||||
|
||||
<h:panelGrid columns="2">
|
||||
<h:outputLabel styleClass="label" value="Supplier ID:"/>
|
||||
<h:inputText value="#{suppliers.snumber}"/>
|
||||
</h:panelGrid>
|
||||
|
||||
<h:panelGrid columns="8">
|
||||
<h:outputLabel styleClass="label" value="Supplier Name"/>
|
||||
<h:inputText
|
||||
value="#{suppliers.sname}"/>
|
||||
<h:outputLabel styleClass="label" value="Status" />
|
||||
<h:inputText
|
||||
value="#{suppliers.status}"/>
|
||||
<h:outputLabel styleClass="label" value="Birthday" />
|
||||
<h:inputText value="#{suppliers.birthday}"/>
|
||||
|
||||
<h:outputLabel styleClass="label" value="City" />
|
||||
<h:inputText
|
||||
value="#{suppliers.city}"/>
|
||||
</h:panelGrid>
|
||||
|
||||
<h:panelGrid columns="6">
|
||||
<h:commandButton styleClass="button" value="View Supplier" action="#{suppliers.viewSupplier()}"/>
|
||||
<h:commandButton value="Insert Supplier" action="#{suppliers.insertSupplier}"/>
|
||||
<h:commandButton value="Update Supplier" action="#{suppliers.updateSupplier}"/>
|
||||
<h:commandButton value="Delete Supplier" action="#{suppliers.deleteSupplier}"/>
|
||||
<h:commandButton value="List All Suppliers" action="#{suppliers.listAll}"/>
|
||||
<h:commandButton value="Clear" action="#{suppliers.clear}"/>
|
||||
</h:panelGrid>
|
||||
|
||||
<h:panelGrid>
|
||||
<h:outputText escape="false" style="color:green"
|
||||
value="#{suppliers.result}">
|
||||
</h:outputText>
|
||||
</h:panelGrid>
|
||||
|
||||
</h:form>
|
||||
</h:body>
|
||||
</html>
|
@@ -0,0 +1,71 @@
|
||||
.body {
|
||||
background: #eee;
|
||||
}
|
||||
|
||||
.button {
|
||||
margin: 10px;
|
||||
border-left: thin solid darkGray;
|
||||
border-bottom: thin solid darkGray;
|
||||
border-top: thin solid lightGray;
|
||||
border-right: thin solid lightGray;
|
||||
color: #777;
|
||||
background: #A7C942;
|
||||
font-family: "Comic Sans MS";
|
||||
border-radius: 20%;
|
||||
}
|
||||
h1
|
||||
{
|
||||
vertical-align: top;
|
||||
text-align: middle;
|
||||
font-style: italic;
|
||||
color: #888;
|
||||
font-size: 2em;
|
||||
font-family: "Comic Sans MS";
|
||||
|
||||
}
|
||||
|
||||
.label
|
||||
{
|
||||
color: #888;
|
||||
font-size: 0.8em;
|
||||
font-family: "Comic Sans MS";
|
||||
}
|
||||
.leftImage {
|
||||
float: left;
|
||||
margin-right: 1em;
|
||||
}
|
||||
|
||||
.backLink {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
|
||||
.tableHeader {
|
||||
font-family:"Trebuchet MS", Arial, Helvetica, sans-serif;
|
||||
border-collapse:collapse;
|
||||
font-size:1.1em;
|
||||
text-align:left;
|
||||
padding-top:5px;
|
||||
padding-bottom:4px;
|
||||
background-color:#A7C942;
|
||||
color:white;
|
||||
border:1px solid #98bf21;
|
||||
}
|
||||
|
||||
.oddTableRow {
|
||||
border:1px solid #98bf21;
|
||||
}
|
||||
|
||||
.evenTableRow {
|
||||
background-color: #eeeeee;
|
||||
font-size:1em;
|
||||
|
||||
padding:3px 7px 2px 7px;
|
||||
|
||||
color:#000000;
|
||||
background-color:#EAF2D3;
|
||||
}
|
||||
|
||||
.table {
|
||||
border:1px solid green;
|
||||
}
|
@@ -0,0 +1,101 @@
|
||||
<?xml version='1.0' encoding='UTF-8' ?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:h="http://xmlns.jcp.org/jsf/html"
|
||||
xmlns:f="http://xmlns.jcp.org/jsf/core"
|
||||
xmlns:p="http://primefaces.org/ui">
|
||||
<h:head>
|
||||
<title>Suppliers Table</title>
|
||||
</h:head>
|
||||
<h:body>
|
||||
<h:form>
|
||||
<p:growl id="globalgrowl" showDetail="false" showSummary="true" life="2000"/>
|
||||
|
||||
<p:dataTable id="id_supplier_table"
|
||||
var="supplier"
|
||||
value="#{supplierBean.getSuppliers()}"
|
||||
scrollable="true"
|
||||
paginatorAlwaysVisible="true"
|
||||
paginator="true"
|
||||
paginatorPosition="top"
|
||||
rows="10"
|
||||
lazy="true"
|
||||
>
|
||||
<f:facet name="header"> <h:outputText value="Suppliers Table" style="font-size: 1.2em"/></f:facet>
|
||||
<f:event type="preRenderView"
|
||||
listener="#{supplierBean.displayExceptionMessageAtPreRenderListener}"
|
||||
/>
|
||||
|
||||
<p:column>
|
||||
<f:facet name="header"> <h:outputText value="update" /></f:facet>
|
||||
<h:selectBooleanCheckbox onclick="submit()"
|
||||
value="#{supplier.modify}">
|
||||
</h:selectBooleanCheckbox >
|
||||
</p:column>
|
||||
<p:column id="idColumnSnumber">
|
||||
<f:facet name="header"> <h:outputText value="snumber" /></f:facet>
|
||||
|
||||
<h:inputText disabled ="#{!supplier.insertFromDatatable and !supplier.modify}" value="#{supplier.snumber}">
|
||||
|
||||
</h:inputText>
|
||||
</p:column>
|
||||
|
||||
<p:column>
|
||||
<f:facet name="header"> <h:outputText value="sname" /></f:facet>
|
||||
|
||||
<h:inputText disabled ="#{!supplier.modify}" value="#{supplier.sname}"/>
|
||||
</p:column>
|
||||
<p:column>
|
||||
<f:facet name="header"> <h:outputText value="birthday" /></f:facet>
|
||||
|
||||
<p:calendar
|
||||
disabled ="#{!supplier.modify}"
|
||||
value="#{supplier.birthday_date}"
|
||||
pattern="yyyy/MM/dd"/>
|
||||
</p:column>
|
||||
<p:column>
|
||||
<f:facet name="header"> <h:outputText value="status" /></f:facet>
|
||||
|
||||
<h:inputText disabled ="#{!supplier.modify}" value="#{supplier.status}"/>
|
||||
</p:column>
|
||||
<p:column>
|
||||
<f:facet name="header"> <h:outputText value="city" /></f:facet>
|
||||
|
||||
<h:inputText disabled ="#{!supplier.modify}" value="#{supplier.city}"/>
|
||||
</p:column>
|
||||
|
||||
|
||||
|
||||
</p:dataTable>
|
||||
<p:draggable for="id_supplier_table"/>
|
||||
|
||||
<p:commandButton value="Save" action="#{supplierBean.saveFromUpdate()}" />
|
||||
<p:commandButton id="idInsertRow" value="Insert Row" action="#{supplierBean.insertSupplier()}" />
|
||||
<p:commandButton title="Delete Supplier"
|
||||
value="X" styleClass="ui-button-raised ui-button-danger"
|
||||
icon="pi pi-trash"
|
||||
onclick="PF('asdv-dlg-delete').show();"
|
||||
>
|
||||
|
||||
</p:commandButton >
|
||||
<p:dialog id="dlg" header="Delete a Supplier"
|
||||
widgetVar="asdv-dlg-delete" modal="true">
|
||||
<h:outputText value="Are you sure you want to delete this supplier?"/>
|
||||
<br/>
|
||||
<br/>
|
||||
<p:commandButton value="OK" icon="pi pi-check"
|
||||
update="@form:globalgrowl"
|
||||
onclick="PF('dlg').hide();"
|
||||
action="#{supplierBean.deleteSupplier()}">
|
||||
</p:commandButton >
|
||||
<span> </span>
|
||||
<p:commandButton value="Cancel"
|
||||
styleClass="ui-button-raised ui-button-warning"
|
||||
update="@none"
|
||||
partialSubmit = "true"
|
||||
onclick="PF('dlg').hide();"/>
|
||||
</p:dialog>
|
||||
|
||||
</h:form>
|
||||
</h:body>
|
||||
</html>
|
Reference in New Issue
Block a user