WebDev Hell

master
Caleb Fontenot 2023-11-03 13:34:02 +07:00
parent 45656bf9ed
commit 473a7e61e9
133 changed files with 4855 additions and 179 deletions

7
.gitignore vendored

@ -60,3 +60,10 @@
/Semester 2/Assignments/MP5-Binary-Files_CalebFontenot/build/
/Semester 2/Assignments/SuppliersPartsDatabase_CalebFontenot/target/
/Semester 2/Assignments/SuppliersPartsDatabase/target/
/Semester 2/Exams/ProgrammingExam1_CalebFontenot/target/
/Semester 2/Exams/ProgrammingExamQuestion2_CalebFontenot/target/
/Semester 2/Exams/ProgrammingExam1Question3_CalebFontenot/target/
/Semester 2/Exams/edu.slcc.asdv.caleb_ProgrammingExam1Question4_CalebFontenot_war_1.0-SNAPSHOT/target/
/Semester 2/Exams/ProgrammingExam1Question5/target/
/Semester 2/Assignments/suppliers_parts_old/target/
/Semester 2/Assignments/SuppliersPartsDatabase_old/target/

@ -0,0 +1,68 @@
/*
* 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.part.Part;
import edu.slcc.asdv.bl.part.DatabaseManipulationPart;
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 java.io.Serializable;
import java.util.List;
@Named(value = "partsBean")
@SessionScoped
public class PartsBean implements Serializable
{
DBase dms = new DatabaseManipulationPart();
List<Part> parts;
public PartsBean()
{
parts = dms.listAll();
}
public List<Part> getParts()
{
return parts;
}
public void saveFromUpdate()
{
int totalRowsUpdated = 0;
for (Part s : this.parts)
{
if (s.isModify())
{
try
{
int rowsUpdated = this.dms.update(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;
}
}
}
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);
}
}

@ -59,6 +59,14 @@ public class SupplierBean implements Serializable
String msg = ("Numbers of rows updated: " + totalRowsUpdated);
addMessage(msg, "no exception", FacesMessage.SEVERITY_INFO);
}
public void deleteRow() {
for (Supplier s: this.suppliers) {
if (s.isDelete()) {
}
}
}
public void addMessage(String summary, String detail, Severity severity)
{

@ -18,5 +18,7 @@ public interface DBase<T>
int update( T t)
throws SQLException;
int delete (T t) throws SQLException;
}

@ -44,7 +44,7 @@ public class UtilitiesDatabase
return null;
}
String ip = "localhost"; //internet connection
String url = "jdbc:mysql://" + ip + ":8889/" + databaseName + "?useSSL=false";
String url = "jdbc:mysql://" + ip + ":3306/" + databaseName + "?allowPublicKeyRetrieval=true&useSSL=false";
try
{
con = DriverManager.getConnection(url, userName, password);

@ -24,8 +24,8 @@ public class DatabaseManipulationPart implements DBase<Part>
{
List<Part> tableParts = new ArrayList<Part>();
String databaseName = "suppliers_parts_23";
String userName = "root";
String password = "root";
String userName = "java";
String password = "1KUZ4r6.73IGu*18";
String URL2 = "com.mysql.jdbc.Driver";
Connection con = new UtilitiesDatabase().connection(
databaseName, userName, password, URL2);
@ -38,7 +38,7 @@ public class DatabaseManipulationPart implements DBase<Part>
}
String table = "";
ResultSet rs = null;
String sqlStr = "SELECT * FROM part";
String sqlStr = "SELECT * FROM part";
//prepare statement
ps = con.prepareStatement(sqlStr);
//execute
@ -84,8 +84,62 @@ public class DatabaseManipulationPart implements DBase<Part>
System.out.println(dmp.listAll());
}
@Override
@Override
public int update(Part t)
throws SQLException
{
String databaseName = "suppliers_parts_23";
String userName = "java";
String password = "1KUZ4r6.73IGu*18";
String URL2 = "com.mysql.jdbc.Driver";
Connection con = new UtilitiesDatabase().connection(
databaseName, userName, password, URL2);
int result = 0;
PreparedStatement updatePart = null;
try
{
if (con == null)
{
throw new RuntimeException("cannot connect to database");
}
updatePart = con.prepareStatement(
"UPDATE part SET pnumber=?, pname=?, color=?, city=? where pnumber=?");
updatePart.setString(1, t.getPnumber());
updatePart.setString(2, t.getPname());
updatePart.setString(3, t.getColor());
updatePart.setString(4, t.getColor());
updatePart.setString(5, t.getPnumber());
result = updatePart.executeUpdate();
}
catch (SQLException ex)
{
System.err.println(ex.toString());
throw ex;
}
finally
{
try
{
new UtilitiesDatabase().closeDatabaseConnection(con);
// close the resources
if (updatePart != null)
{
updatePart.close();
}
}
catch (SQLException sqle)
{
sqle.printStackTrace();
throw sqle;
}
}
return result;
}
@Override
public int delete(Part t) throws SQLException
{
throw new UnsupportedOperationException("Not supported yet."); // Generated from nbfs://nbhost/SystemFileSystem/Templates/Classes/Code/GeneratedMethodBody
}

@ -8,68 +8,65 @@ package edu.slcc.asdv.bl.part;
*
* @author asdv5
*/
public class Part
{
public class Part {
private String pnumber;
private String pname;
private String color;
private String city;
private boolean modify;
public Part(String pnumber, String pname, String color, String city)
{
public boolean isModify() {
return modify;
}
public void setModify(boolean modify) {
this.modify = modify;
}
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()
{
public String getColor() {
return color;
}
public void setColor(String color)
{
public void setColor(String color) {
this.color = color;
}
public String getCity()
{
public String getCity() {
return city;
}
public void setCity(String city)
{
public void setCity(String city) {
this.city = city;
}
public String getPname()
{
public String getPname() {
return pname;
}
public void setPname(String pname)
{
public void setPname(String pname) {
this.pname = pname;
}
public String getPnumber()
{
public String getPnumber() {
return pnumber;
}
public void setPnumber(String pnumber)
{
public void setPnumber(String pnumber) {
this.pnumber = pnumber;
}
@Override
public String toString()
{
public String toString() {
return "Part{" + "pnumber=" + pnumber + ", pname=" + pname + ", color=" + color + ", city=" + city + '}';
}
}

@ -25,8 +25,8 @@ public class DatabaseManipulationSupplier implements DBase<Supplier>
{
List<Supplier> tableSuppliers = new ArrayList<Supplier>();
String databaseName = "suppliers_parts_23";
String userName = "root";
String password = "root";
String userName = "java";
String password = "1KUZ4r6.73IGu*18";
String URL2 = "com.mysql.jdbc.Driver";
Connection con = new UtilitiesDatabase().connection(
databaseName, userName, password, URL2);
@ -85,8 +85,8 @@ public class DatabaseManipulationSupplier implements DBase<Supplier>
throws SQLException
{
String databaseName = "suppliers_parts_23";
String userName = "root";
String password = "root";
String userName = "java";
String password = "1KUZ4r6.73IGu*18";
String URL2 = "com.mysql.jdbc.Driver";
Connection con = new UtilitiesDatabase().connection(
databaseName, userName, password, URL2);
@ -137,4 +137,61 @@ public class DatabaseManipulationSupplier implements DBase<Supplier>
}
public static void main(String[] args)
{
DatabaseManipulationSupplier dmp = new DatabaseManipulationSupplier();
System.out.println(dmp.listAll());
}
@Override
public int delete(Supplier t) throws SQLException
{
String databaseName = "suppliers_parts_23";
String userName = "java";
String password = "1KUZ4r6.73IGu*18";
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=?"
"DELETE FROM supplier WHERE snumber=? "
);
updateSupplier.setString(1, 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;
}
}

@ -0,0 +1,41 @@
/*
* 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;
/**
*
* @author caleb
*/
import jakarta.faces.application.FacesMessage;
import jakarta.faces.component.UIComponent;
import jakarta.faces.context.FacesContext;
import jakarta.faces.validator.FacesValidator;
import jakarta.faces.validator.Validator;
import jakarta.faces.validator.ValidatorException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
@FacesValidator("dateValidator")
public class DateValidator implements Validator {
@Override
public void validate(FacesContext context, UIComponent component, Object value) throws ValidatorException {
String dateStr = (String) value;
if (dateStr == null || dateStr.trim().isEmpty()) {
return; // Empty values are not validated.
}
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
dateFormat.setLenient(false);
try {
dateFormat.parse(dateStr);
} catch (ParseException e) {
throw new ValidatorException(new FacesMessage("Invalid date format. Please use yyyy-MM-dd."));
}
}
}

@ -0,0 +1,31 @@
/*
* 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;
/**
*
* @author caleb
*/
import jakarta.faces.application.FacesMessage;
import jakarta.faces.component.UIComponent;
import jakarta.faces.context.FacesContext;
import jakarta.faces.validator.FacesValidator;
import jakarta.faces.validator.Validator;
import jakarta.faces.validator.ValidatorException;
@FacesValidator("numericValidator")
public class NumericValidator implements Validator {
@Override
public void validate(FacesContext context, UIComponent component, Object value) throws ValidatorException {
String input = value.toString();
if (input == null || !input.matches("\\d+")) {
throw new ValidatorException(new FacesMessage("Please enter a valid numeric value."));
}
}
}

@ -17,9 +17,19 @@ public class Supplier implements Serializable
private String birthday;
private int status;
private String city;
private boolean delete;
private boolean modify;
public boolean isDelete()
{
return delete;
}
public void setDelete(boolean delete)
{
this.delete = delete;
}
public boolean isModify()
{
return modify;
@ -39,6 +49,7 @@ public class Supplier implements Serializable
this.status = status;
this.city = city;
this.modify = false;
this.delete = false;
}
public String getCity()

@ -0,0 +1,59 @@
<?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>Facelet Title</title>
</h:head>
<h:body>
<h:form>
<p:growl id="globalgrowl" showDetail="false" showSummary="true" life="2000"/>
<h:dataTable var="part"
value="#{partsBean.getParts()}" >
<f:facet name="header"> <h:outputText value="Parts Table" style="font-size: 1.2em"/></f:facet>
<h:column>
<f:facet name="header"> <h:outputText value="pnumber" /></f:facet>
<h:inputText disabled ="true" value="#{part.pnumber}"/>
</h:column>
<h:column>
<f:facet name="header"> <h:outputText value="pname" /></f:facet>
<h:inputText disabled ="#{!part.modify}" value="#{part.pname}">
<f:validateLength minimum="0" maximum="20" />
</h:inputText>
</h:column>
<h:column>
<f:facet name="header"> <h:outputText value="color" /></f:facet>
<h:inputText disabled ="#{!part.modify}" value="#{part.color}">
<f:validateLength minimum="0" maximum="20" />
</h:inputText>
</h:column>
<h:column>
<f:facet name="header"> <h:outputText value="city" /></f:facet>
<h:inputText disabled ="#{!part.modify}" value="#{part.city}">
<f:validateLength minimum="0" maximum="20" />
</h:inputText>
</h:column>
<h:column>
<f:facet name="header"> <h:outputText value="update" /></f:facet>
<h:selectBooleanCheckbox onclick="submit()"
value="#{part.modify}">
</h:selectBooleanCheckbox >
</h:column>
</h:dataTable>
<h:commandButton value="Save" action="#{partsBean.saveFromUpdate()}" />
</h:form>
</h:body>
</html>

@ -19,29 +19,34 @@
<f:facet name="header"> <h:outputText value="snumber" /></f:facet>
<h:inputText disabled ="true" value="#{supplier.snumber}"/>
</h:column>
<h:column>
<f:facet name="header"> <h:outputText value="sname" /></f:facet>
<h:inputText disabled ="#{!supplier.modify}" value="#{supplier.sname}"/>
<h:inputText disabled ="#{!supplier.modify}" value="#{supplier.sname}">
<f:validateLength minimum="3" maximum="20" />
</h:inputText>
</h:column>
<h:column>
<f:facet name="header"> <h:outputText value="birthday" /></f:facet>
<h:inputText disabled ="#{!supplier.modify}" value="#{supplier.birthday}"/>
<h:inputText disabled ="#{!supplier.modify}" value="#{supplier.birthday}" validator="dateValidator"/>
</h:column>
<h:column>
<f:facet name="header"> <h:outputText value="status" /></f:facet>
<f:facet name="header"> <h:outputText value="status"/></f:facet>
<h:inputText disabled ="#{!supplier.modify}" value="#{supplier.status}"/>
<h:inputText disabled ="#{!supplier.modify}" value="#{supplier.status}" validator="numericValidator"/>
</h:column>
<h:column>
<f:facet name="header"> <h:outputText value="city" /></f:facet>
<h:inputText disabled ="#{!supplier.modify}" value="#{supplier.city}"/>
<h:inputText disabled ="#{!supplier.modify}" value="#{supplier.city}">
<f:validateLength minimum="3" maximum="20" />
</h:inputText>
</h:column>
@ -51,6 +56,9 @@
value="#{supplier.modify}">
</h:selectBooleanCheckbox >
</h:column>
<h:column>
<h:commandButton value="Delete" action="#{supplierBean.}"
</h:column>
</h:dataTable>
<h:commandButton value="Save" action="#{supplierBean.saveFromUpdate()}" />
</h:form>

@ -12,9 +12,11 @@ import java.util.List;
*
* @author asdv5
*/
public interface DBase<T>
{
List<T> listAll();
public interface DBase<T> {
List<T> listAll();
int update(T t) throws SQLException;
int update(T t) throws SQLException;
}
int delete(T t) throws SQLException;
}

@ -88,4 +88,10 @@ public class DatabaseManipulationParts implements DBase<Part>
{
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
}
}

@ -89,4 +89,10 @@ public class DatabaseManipulationSupplier implements DBase<Supplier>
{
throw new UnsupportedOperationException("Not supported yet."); // Generated from nbfs://nbhost/SystemFileSystem/Templates/Classes/Code/GeneratedMethodBody
}
@Override
public int delete(Supplier t) throws SQLException
{
throw new UnsupportedOperationException("Not supported yet."); // Generated from nbfs://nbhost/SystemFileSystem/Templates/Classes/Code/GeneratedMethodBody
}
}

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<project-shared-configuration>
<!--
This file contains additional configuration written by modules in the NetBeans IDE.
The configuration is intended to be shared among all the users of project and
therefore it is assumed to be part of version control checkout.
Without this configuration present, some functionality in the IDE may be limited or fail altogether.
-->
<properties xmlns="http://www.netbeans.org/ns/maven-properties-data/1">
<!--
Properties that influence various parts of the IDE, especially code formatting and the like.
You can copy and paste the single properties, into the pom.xml file and the IDE will pick them up.
That way multiple projects can share the same settings (useful for formatting rules for example).
Any value defined here will override the pom.xml file value but is only applicable to the current project.
-->
<org-netbeans-modules-maven-j2ee.netbeans_2e_hint_2e_j2eeVersion>9.0-web</org-netbeans-modules-maven-j2ee.netbeans_2e_hint_2e_j2eeVersion>
<org-netbeans-modules-maven-j2ee.netbeans_2e_hint_2e_deploy_2e_server>gfv700ee10</org-netbeans-modules-maven-j2ee.netbeans_2e_hint_2e_deploy_2e_server>
<org-netbeans-modules-projectapi.jsf_2e_language>Facelets</org-netbeans-modules-projectapi.jsf_2e_language>
<netbeans.hint.jdkPlatform>JDK_11__System_</netbeans.hint.jdkPlatform>
</properties>
</project-shared-configuration>

@ -0,0 +1,88 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.mycompany</groupId>
<artifactId>SuppliersPartsDatabase</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<name>SuppliersPartsDatabase-1.0-SNAPSHOT</name>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<endorsed.dir>${project.build.directory}/endorsed</endorsed.dir>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<failOnMissingWebXml>false</failOnMissingWebXml>
<jakartaee>9.0.0</jakartaee>
</properties>
<dependencies>
<dependency>
<groupId>jakarta.platform</groupId>
<artifactId>jakarta.jakartaee-api</artifactId>
<version>${jakartaee}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<version>8.1.0</version>
</dependency>
<dependency>
<groupId>org.primefaces</groupId>
<artifactId>primefaces</artifactId>
<version>12.0.0</version>
<classifier>jakarta</classifier>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<compilerArguments>
<endorseddirs>${endorsed.dir}</endorseddirs>
</compilerArguments>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.3</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.6</version>
<executions>
<execution>
<phase>validate</phase>
<goals>
<goal>copy</goal>
</goals>
<configuration>
<outputDirectory>${endorsed.dir}</outputDirectory>
<silent>true</silent>
<artifactItems>
<artifactItem>
<groupId>jakarta.platform</groupId>
<artifactId>jakarta.jakartaee-api</artifactId>
<version>${jakartaee}</version>
<type>jar</type>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>

@ -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,68 @@
/*
* 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.inject.Named;
import jakarta.enterprise.context.SessionScoped;
import jakarta.faces.application.FacesMessage;
import jakarta.faces.application.FacesMessage.Severity;
import jakarta.faces.context.FacesContext;
import java.io.Serializable;
import java.util.List;
@Named(value = "supplierBean")
@SessionScoped
public class SupplierBean implements Serializable
{
DBase dms = new DatabaseManipulationSupplier();
List<Supplier> suppliers;
public SupplierBean()
{
suppliers = dms.listAll();
}
public List<Supplier> getSuppliers()
{
return suppliers;
}
public void saveFromUpdate()
{
int totalRowsUpdated = 0;
for (Supplier s : this.suppliers)
{
if (s.isModify())
{
try
{
int rowsUpdated = this.dms.update(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;
}
}
}
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,22 @@
/*
* 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.SQLException;
import java.util.ArrayList;
import java.util.List;
/**
*
* @author asdv5
*/
public interface DBase<T>
{
List<T> listAll();
int update( T t)
throws SQLException;
}

@ -0,0 +1,96 @@
/*
* 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 + ":8889/" + databaseName + "?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() );
}
}

@ -0,0 +1,92 @@
/*
* 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
}
}

@ -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,140 @@
/*
* 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.sql.Connection;
import java.sql.ParameterMetaData;
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>
{
@Override
public List<Supplier> listAll()
{
List<Supplier> tableSuppliers = new ArrayList<Supplier>();
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 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 = 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();
}
finally
{
try
{
new UtilitiesDatabase().closeDatabaseConnection(con);
// close the resources
if (ps != null)
{
ps.close();
}
}
catch (SQLException sqle)
{
sqle.printStackTrace();
}
}
return tableSuppliers;
}
@Override
public int update(Supplier t)
throws SQLException
{
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);
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;
}
}

@ -0,0 +1,110 @@
/*
* 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 java.io.Serializable;
/**
*
* @author asdv5
*/
public class Supplier implements Serializable
{
private String snumber;
private String sname;
private String birthday;
private int status;
private String city;
private boolean modify;
public boolean isModify()
{
return modify;
}
public void setModify(boolean modify)
{
this.modify = modify;
}
public Supplier(String snumber, String sname, String birthday, int status, String city)
{
this.snumber = snumber;
this.sname = sname;
this.birthday = birthday;
this.status = status;
this.city = city;
this.modify = false;
}
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 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,58 @@
<?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>Facelet Title</title>
</h:head>
<h:body>
<h:form>
<p:growl id="globalgrowl" showDetail="false" showSummary="true" life="2000"/>
<h:dataTable var="supplier"
value="#{supplierBean.getSuppliers()}" >
<f:facet name="header"> <h:outputText value="Suppliers Table" style="font-size: 1.2em"/></f:facet>
<h:column>
<f:facet name="header"> <h:outputText value="snumber" /></f:facet>
<h:inputText disabled ="true" value="#{supplier.snumber}"/>
</h:column>
<h:column>
<f:facet name="header"> <h:outputText value="sname" /></f:facet>
<h:inputText disabled ="#{!supplier.modify}" value="#{supplier.sname}"/>
</h:column>
<h:column>
<f:facet name="header"> <h:outputText value="birthday" /></f:facet>
<h:inputText disabled ="#{!supplier.modify}" value="#{supplier.birthday}"/>
</h:column>
<h:column>
<f:facet name="header"> <h:outputText value="status" /></f:facet>
<h:inputText disabled ="#{!supplier.modify}" value="#{supplier.status}"/>
</h:column>
<h:column>
<f:facet name="header"> <h:outputText value="city" /></f:facet>
<h:inputText disabled ="#{!supplier.modify}" value="#{supplier.city}"/>
</h:column>
<h:column>
<f:facet name="header"> <h:outputText value="update" /></f:facet>
<h:selectBooleanCheckbox onclick="submit()"
value="#{supplier.modify}">
</h:selectBooleanCheckbox >
</h:column>
</h:dataTable>
<h:commandButton value="Save" action="#{supplierBean.saveFromUpdate()}" />
</h:form>
</h:body>
</html>

@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<project-shared-configuration>
<!--
This file contains additional configuration written by modules in the NetBeans IDE.
The configuration is intended to be shared among all the users of project and
therefore it is assumed to be part of version control checkout.
Without this configuration present, some functionality in the IDE may be limited or fail altogether.
-->
<properties xmlns="http://www.netbeans.org/ns/maven-properties-data/1">
<!--
Properties that influence various parts of the IDE, especially code formatting and the like.
You can copy and paste the single properties, into the pom.xml file and the IDE will pick them up.
That way multiple projects can share the same settings (useful for formatting rules for example).
Any value defined here will override the pom.xml file value but is only applicable to the current project.
-->
<org-netbeans-modules-maven-j2ee.netbeans_2e_hint_2e_j2eeVersion>10-web</org-netbeans-modules-maven-j2ee.netbeans_2e_hint_2e_j2eeVersion>
<org-netbeans-modules-maven-j2ee.netbeans_2e_hint_2e_deploy_2e_server>gfv700ee10</org-netbeans-modules-maven-j2ee.netbeans_2e_hint_2e_deploy_2e_server>
<org-netbeans-modules-projectapi.jsf_2e_language>Facelets</org-netbeans-modules-projectapi.jsf_2e_language>
</properties>
</project-shared-configuration>

@ -0,0 +1,77 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>edu.slcc.asdv</groupId>
<artifactId>suppliers_parts</artifactId>
<version>1</version>
<packaging>war</packaging>
<name>suppliers_parts-1</name>
<properties>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
<endorsed.dir>${project.build.directory}/endorsed</endorsed.dir>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<failOnMissingWebXml>false</failOnMissingWebXml>
<jakartaee>10.0.0</jakartaee>
</properties>
<dependencies>
<dependency>
<groupId>jakarta.platform</groupId>
<artifactId>jakarta.jakartaee-api</artifactId>
<version>${jakartaee}</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>11</source>
<target>11</target>
<compilerArguments>
<endorseddirs>${endorsed.dir}</endorseddirs>
</compilerArguments>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.3</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.6</version>
<executions>
<execution>
<phase>validate</phase>
<goals>
<goal>copy</goal>
</goals>
<configuration>
<outputDirectory>${endorsed.dir}</outputDirectory>
<silent>true</silent>
<artifactItems>
<artifactItem>
<groupId>jakarta.platform</groupId>
<artifactId>jakarta.jakartaee-api</artifactId>
<version>${jakartaee}</version>
<type>jar</type>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>

@ -0,0 +1,466 @@
package edu.slcc.asdv.bl;
import java.io.Serializable;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Named;
/**
*
* @author a. v. markou
*/
@Named(value = "suppliers")
@ApplicationScoped
public class Suppliers implements Serializable
{
String snumber = "";
String sname = "";
int status = 0;
String birthday = "";
String city = "";
String result = "";
public Suppliers()
{
connection();
}
public String getSnumber()
{
return snumber;
}
public void setSnumber(String snumber)
{
this.snumber = snumber;
}
public String getSname()
{
return sname;
}
public void setSname(String sname)
{
this.sname = sname;
}
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 String getCity()
{
return city;
}
public void setCity(String city)
{
this.city = city;
}
public String getConnectionResponse()
{
Connection con = connection();
if (con == null)
{
result = "cannot connect to database" ;
return null;
}
if (con != null)
{
return "<p style=\"color:green\">Connection succesfull! <br />";
}
else
{
connection();
return "<p style=\"color:red\">Connection failed! <br />";
}
}
public static Connection getConnection(String databaseName, String userName, String password) {
String URL2 = "com.mysql.jdbc.Driver";
Connection con = null;
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 + ":8889/" + databaseName + "?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;
}
private Connection connection() //throws InstantiationException, IllegalAccessException
{
String databaseName = "suppliers_parts_23";
String userName = "root";
String password = "root";
String URL2 = "com.mysql.jdbc.Driver";
Connection con = null;
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 + ":8889/" + databaseName + "?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 clear()
{
status = 0;
snumber = "";
sname = "";
birthday = "";
city = "";
result = "";
}
public void listAll()
{
Connection con = connection();
if (con == null)
{
result = "cannot connect to database" ;
return ;
}
String table = "";
PreparedStatement ps = null;
ResultSet rs = null;
String sqlStr = "SELECT * FROM supplier";
try
{
//prepare statement
ps = con.prepareStatement(sqlStr);
//execute
rs = ps.executeQuery();
while (rs.next())
{
String sNumber = rs.getString(1) + " ";
String sName = rs.getString(2) + " ";
String status = rs.getInt(4) + " ";
String bdate = rs.getDate(3) + " ";
String city = rs.getString(5) + " ";
table += sNumber + sName + bdate + status + city + "</br>";
}
}
catch (Exception ex)
{
ex.printStackTrace();
}
finally
{
try
{
closeDatabaseConnection( con);
// close the resources
if (ps != null)
{
ps.close();
}
}
catch (SQLException sqle){ sqle.printStackTrace(); }
}
result = table;
}
public void viewSupplier()
{
Connection con = connection();
if (con == null)
{
result = "cannot connect to database" ;
return ;
}
String ret = "";
PreparedStatement ps = null;
ResultSet rs = null;
String sqlStr = "SELECT * FROM supplier WHERE snumber=?";
try
{
//prepare statement
ps = con.prepareStatement(sqlStr);
ps.setString(1, snumber);
//execute
rs = ps.executeQuery();
if (rs.next())
{
this.snumber = rs.getString("snumber");
ret += this.snumber + " ";
this.sname = rs.getString("sname");
ret += this.sname + " ";
this.status = rs.getInt("status");
ret += this.status + " ";
this.city = rs.getString("city");
ret += this.city + " ";
Object bDate = rs.getObject("birthday");
this.birthday = bDate.toString();
ret += this.birthday;
}
else
ret = this.snumber + " doesn't exist.";
}
catch (Exception ex){ex.printStackTrace();}
finally
{
try
{
this.closeDatabaseConnection(con);
if (ps != null)
ps.close();
}
catch (SQLException sqle){ sqle.printStackTrace();}
}
this.result = ret;
}
public void updateSupplier()
{
Connection con = connection();
if (con == null)
{
result = "cannot connect to database" ;
return ;
}
PreparedStatement updateSupplier = null;
try
{
updateSupplier = con.prepareStatement(
"UPDATE supplier SET snumber=?, sname=?, status=?, birthday=?, city=? WHERE snumber=?");
updateSupplier.setString(1, snumber);
updateSupplier.setString(2, sname);
updateSupplier.setInt(3, status);
java.sql.Date bd = stringDateToSqlDate(this.birthday);
updateSupplier.setDate(4, bd );
updateSupplier.setString(5, city);
updateSupplier.setString(6, snumber);
int updateCount = updateSupplier.executeUpdate();
result = "number of rows affected: " + updateCount;
}
catch (Exception ex)
{
System.err.println(ex.toString());
}
finally
{
try
{
this.closeDatabaseConnection(con);
// close the resources
if (updateSupplier != null)
{
updateSupplier.close();
}
}
catch (SQLException sqlee)
{
sqlee.printStackTrace();
}
}
}
public void deleteSupplier()
{
Connection con = connection();
if (con == null)
{
result = "cannot connect to database" ;
return ;
}
PreparedStatement ps = null;
int rowsAffected = -1;
try
{
String query = "DELETE FROM supplier WHERE snumber=? ";
ps = con.prepareStatement(query);
ps.setString(1, snumber);
rowsAffected = ps.executeUpdate();
result = "number of rows affected: " + rowsAffected;
}
catch (Exception ex)
{
System.err.println(ex.toString());
}
finally
{
try
{
this.closeDatabaseConnection(con);
// close the resources
if (ps != null)
{
ps.close();
}
}
catch (SQLException sqlee)
{
sqlee.printStackTrace();
}
}
}
public void insertSupplier()
{
Connection con = connection();
if (con == null)
{
result = "cannot connect to database" ;
return ;
}
PreparedStatement updateSupplier = null;
try
{
updateSupplier = con.prepareStatement(
"INSERT INTO supplier (snumber, sname, status, birthday, city ) "
+ "VALUES ( ?, ?, ? , ? ,? )");
updateSupplier.setString(1, snumber);
updateSupplier.setString(2, sname);
updateSupplier.setInt(3, status);
java.sql.Date sqlDate = stringDateToSqlDate(birthday);
updateSupplier.setDate(4, sqlDate);
updateSupplier.setString(5, city);
int updateCount = updateSupplier.executeUpdate();
result = "number of rows affected: " + updateCount;
}
catch (Exception ex)
{
System.err.println(ex.toString());
result = ex.toString();
}
finally
{
try
{
this.closeDatabaseConnection(con);
// close the resources
if (updateSupplier != null)
{
updateSupplier.close();
}
}
catch (SQLException e)
{
System.err.println(e.toString());
result = e.toString();
}
}
}
private 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 String getResult()
{
return "<p style=\"color:green\">Suppliers <br />" + result;
}
public void closeDatabaseConnection( Connection con)
{
try
{
if (con != null)
{
con.close();
}
}
catch (SQLException e)
{
result = e.toString();
e.printStackTrace();
}
}
}

@ -0,0 +1,13 @@
package edu.slcc.asdv.suppliers_parts;
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 edu.slcc.asdv.suppliers_parts.resources;
import jakarta.ws.rs.GET;
import jakarta.ws.rs.Path;
import jakarta.ws.rs.core.Response;
/**
*
* @author
*/
@Path("jakartaee10")
public class JakartaEE10Resource {
@GET
public Response ping(){
return Response
.ok("ping Jakarta EE")
.build();
}
}

@ -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,21 @@
<?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>
<title>Facelet Title</title>
</h:head>
<h:body>
<h:form>
<h:panelGrid columns="2">
<h:outputLabel value="table name "/>
<h:inputText value="#{queryBean.tableName}"/>
<h:commandButton value="SELECT * FROM table" action="#{queryBean.queries()}"/>
<h:outputText escape="false" style="color:green" value="#{queryBean.table}"> </h:outputText>
</h:panelGrid>
</h:form>
</h:body>
</html>

@ -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_4_0.xsd"
bean-discovery-mode="all">
</beans>

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
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
-->
<!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">
<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="6.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_6_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/index.xhtml</welcome-file>
</welcome-file-list>
</web-app>

@ -0,0 +1,52 @@
<?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">
<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;
}

@ -16,12 +16,5 @@ Any value defined here will override the pom.xml file value but is only applicab
<org-netbeans-modules-maven-j2ee.netbeans_2e_hint_2e_j2eeVersion>10-web</org-netbeans-modules-maven-j2ee.netbeans_2e_hint_2e_j2eeVersion>
<org-netbeans-modules-maven-j2ee.netbeans_2e_hint_2e_deploy_2e_server>gfv700ee10</org-netbeans-modules-maven-j2ee.netbeans_2e_hint_2e_deploy_2e_server>
<org-netbeans-modules-projectapi.jsf_2e_language>Facelets</org-netbeans-modules-projectapi.jsf_2e_language>
<netbeans.hint.jdkPlatform>JDK_11__System_</netbeans.hint.jdkPlatform>
<org-netbeans-modules-css-prep.less_2e_mappings>/less:/css</org-netbeans-modules-css-prep.less_2e_mappings>
<org-netbeans-modules-css-prep.less_2e_enabled>false</org-netbeans-modules-css-prep.less_2e_enabled>
<org-netbeans-modules-css-prep.sass_2e_enabled>false</org-netbeans-modules-css-prep.sass_2e_enabled>
<org-netbeans-modules-css-prep.sass_2e_compiler_2e_options/>
<org-netbeans-modules-css-prep.less_2e_compiler_2e_options/>
<org-netbeans-modules-css-prep.sass_2e_mappings>/scss:/css</org-netbeans-modules-css-prep.sass_2e_mappings>
</properties>
</project-shared-configuration>

@ -23,11 +23,6 @@
<version>${jakartaee}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.33</version>
</dependency>
</dependencies>
<build>

@ -4,6 +4,7 @@
*/
package edu.slcc.asdv.bl;
import java.sql.SQLException;
import java.util.List;
/**
@ -12,4 +13,7 @@ import java.util.List;
*/
public interface DBase<T> {
List<? extends List<T>> listAll();
int delete( T t)
throws SQLException;
}

@ -8,7 +8,6 @@ import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Named;
@ -18,17 +17,17 @@ import jakarta.inject.Named;
*/
@Named(value = "suppliers")
@ApplicationScoped
public class Suppliers implements Serializable {
public class Suppliers implements Serializable
{
String snumber = "";
String sname = "";
int status = 0;
String birthday = "";
String city = "";
String result = "";
public Suppliers()
{
connection();
@ -87,53 +86,91 @@ public class Suppliers implements Serializable {
public String getConnectionResponse()
{
Connection con = connection();
if (con == null) {
result = "cannot connect to database";
if (con == null)
{
result = "cannot connect to database" ;
return null;
}
if (con != null) {
}
if (con != null)
{
return "<p style=\"color:green\">Connection succesfull! <br />";
} else {
}
else
{
connection();
return "<p style=\"color:red\">Connection failed! <br />";
}
}
}
public static Connection getConnection(String databaseName, String userName, String password) {
private Connection connection() //throws InstantiationException, IllegalAccessException
{
/*
String databaseName = "suppliers_parts_23";
String userName = "admin";
String password = "RangerDog01!";
String URL2 = "com.mysql.jdbc.Driver";
Connection con = null;
*/
String URL2 = "com.mysql.jdbc.Driver";
Connection con = null;
try {// Load Sun's jdbc driver
Class.forName(URL2).newInstance();
System.out.println("JDBC Driver loaded!");
} catch (Exception e) // driver not found
}
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 + "?useSSL=false";
System.out.println(url);
String url = "jdbc:mysql://" + ip + ":8889/" + databaseName + "?useSSL=false";
try {
con = DriverManager.getConnection(url, userName, password);
con.setReadOnly(false);
} catch (Exception e) {
}
catch (Exception e) {
System.err.println(e.toString());
return null;
}
System.out.println("connection successfull");
return con;
}
private Connection connection() //throws InstantiationException, IllegalAccessException
{
String databaseName = "suppliers_parts_23";
String userName = "root";
String password = "root";
String URL2 = "com.mysql.jdbc.Driver";
Connection con = null;
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 + ":8889/" + databaseName + "?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 clear()
{
status = 0;
@ -147,63 +184,72 @@ public class Suppliers implements Serializable {
public void listAll()
{
Connection con = connection();
if (con == null) {
result = "cannot connect to database";
return;
}
if (con == null)
{
result = "cannot connect to database" ;
return ;
}
String table = "";
PreparedStatement ps = null;
ResultSet rs = null;
String sqlStr = "SELECT * FROM supplier";
try {
try
{
//prepare statement
ps = con.prepareStatement(sqlStr);
//execute
rs = ps.executeQuery();
int row = 0;
while (rs.next()) {
while (rs.next())
{
String sNumber = rs.getString(1) + " ";
String sName = rs.getString(2) + " ";
String bdate = rs.getDate(3) + " ";
String status = rs.getInt(4) + " ";
String bdate = rs.getDate(3) + " ";
String city = rs.getString(5) + " ";
table += sNumber + sName + bdate + status + city + "</br>";
row++;
}
} catch (Exception ex) {
}
}
catch (Exception ex)
{
ex.printStackTrace();
} finally {
try {
closeDatabaseConnection(con);
}
finally
{
try
{
closeDatabaseConnection( con);
// close the resources
if (ps != null) {
if (ps != null)
{
ps.close();
}
} catch (SQLException sqle) {
sqle.printStackTrace();
}
}
}
}
catch (SQLException sqle){ sqle.printStackTrace(); }
}
result = table;
}
public void viewSupplier()
{
Connection con = connection();
if (con == null) {
result = "cannot connect to database";
return;
}
if (con == null)
{
result = "cannot connect to database" ;
return ;
}
String ret = "";
PreparedStatement ps = null;
ResultSet rs = null;
String sqlStr = "SELECT snumber, sname, status, city, birthday FROM supplier WHERE snumber=?";
try {
String sqlStr = "SELECT * FROM supplier WHERE snumber=?";
try
{
//prepare statement
ps = con.prepareStatement(sqlStr);
ps.setString(1, snumber);
//execute
rs = ps.executeQuery();
if (rs.next()) {
if (rs.next())
{
this.snumber = rs.getString("snumber");
ret += this.snumber + " ";
this.sname = rs.getString("sname");
@ -212,110 +258,133 @@ public class Suppliers implements Serializable {
ret += this.status + " ";
this.city = rs.getString("city");
ret += this.city + " ";
Object bDate = rs.getObject("birthday");
this.birthday = bDate.toString();
ret += this.birthday;
} else {
ret += this.birthday;
}
else
ret = this.snumber + " doesn't exist.";
}
} catch (Exception ex) {
ex.printStackTrace();
} finally {
try {
}
catch (Exception ex){ex.printStackTrace();}
finally
{
try
{
this.closeDatabaseConnection(con);
if (ps != null) {
if (ps != null)
ps.close();
}
} catch (SQLException sqle) {
sqle.printStackTrace();
}
}
}
catch (SQLException sqle){ sqle.printStackTrace();}
}
this.result = ret;
}
public void updateSupplier()
{
Connection con = connection();
if (con == null) {
result = "cannot connect to database";
return;
}
if (con == null)
{
result = "cannot connect to database" ;
return ;
}
PreparedStatement updateSupplier = null;
try {
try
{
updateSupplier = con.prepareStatement(
"UPDATE supplier SET snumber=?, sname=?, status=?, birthday=?, city=? WHERE snumber=?");
updateSupplier.setString(1, snumber);
updateSupplier.setString(2, sname);
updateSupplier.setInt(3, status);
java.sql.Date bd = stringDateToSqlDate(this.birthday);
updateSupplier.setDate(4, bd);
java.sql.Date bd = stringDateToSqlDate(this.birthday);
updateSupplier.setDate(4, bd );
updateSupplier.setString(5, city);
updateSupplier.setString(6, snumber);
int updateCount = updateSupplier.executeUpdate();
result = "number of rows affected: " + updateCount;
} catch (Exception ex) {
}
catch (Exception ex)
{
System.err.println(ex.toString());
} finally {
try {
}
finally
{
try
{
this.closeDatabaseConnection(con);
// close the resources
if (updateSupplier != null) {
if (updateSupplier != null)
{
updateSupplier.close();
}
}
} catch (SQLException sqlee) {
}
catch (SQLException sqlee)
{
sqlee.printStackTrace();
}
}
}
}
}
public void deleteSupplier()
{
Connection con = connection();
if (con == null) {
result = "cannot connect to database";
return;
}
if (con == null)
{
result = "cannot connect to database" ;
return ;
}
PreparedStatement ps = null;
int rowsAffected = -1;
try {
try
{
String query = "DELETE FROM supplier WHERE snumber=? ";
ps = con.prepareStatement(query);
ps.setString(1, snumber);
rowsAffected = ps.executeUpdate();
result = "number of rows affected: " + rowsAffected;
} catch (Exception ex) {
}
catch (Exception ex)
{
System.err.println(ex.toString());
} finally {
try {
}
finally
{
try
{
this.closeDatabaseConnection(con);
// close the resources
if (ps != null) {
if (ps != null)
{
ps.close();
}
}
} catch (SQLException sqlee) {
}
catch (SQLException sqlee)
{
sqlee.printStackTrace();
}
}
}
}
}
public void insertSupplier()
{
Connection con = connection();
if (con == null) {
result = "cannot connect to database";
return;
}
Connection con = connection();
if (con == null)
{
result = "cannot connect to database" ;
return ;
}
PreparedStatement updateSupplier = null;
try {
try
{
updateSupplier = con.prepareStatement(
"INSERT INTO supplier (snumber, sname, status, birthday, city ) "
+ "VALUES ( ?, ?, ? , ? ,? )");
@ -329,35 +398,45 @@ public class Suppliers implements Serializable {
int updateCount = updateSupplier.executeUpdate();
result = "number of rows affected: " + updateCount;
} catch (Exception ex) {
}
catch (Exception ex)
{
System.err.println(ex.toString());
result = ex.toString();
} finally {
try {
}
finally
{
try
{
this.closeDatabaseConnection(con);
// close the resources
if (updateSupplier != null) {
if (updateSupplier != null)
{
updateSupplier.close();
}
}
} catch (SQLException e) {
}
catch (SQLException e)
{
System.err.println(e.toString());
result = e.toString();
}
}
}
}
}
private java.sql.Date stringDateToSqlDate(String sDate)
private java.sql.Date stringDateToSqlDate(String sDate)
{
java.util.Date date = null;
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
try {
try
{
date = sdf.parse(sDate);
} catch (ParseException e) {
}
catch (ParseException e)
{
e.printStackTrace();
}
return new java.sql.Date(date.getTime());
}
return new java.sql.Date( date.getTime() );
}
public String getResult()
@ -366,15 +445,21 @@ public class Suppliers implements Serializable {
}
public void closeDatabaseConnection(Connection con)
public void closeDatabaseConnection( Connection con)
{
try {
if (con != null) {
try
{
if (con != null)
{
con.close();
}
} catch (SQLException e) {
}
}
catch (SQLException e)
{
result = e.toString();
e.printStackTrace();
}
}
}
}

@ -1,5 +1,4 @@
<?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.
@ -15,6 +14,7 @@
SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
-->
<!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">
<glassfish-web-app error-url="">
<class-loader delegate="true"/>
<jsp-config>

@ -0,0 +1,27 @@
<?xml version="1.0" encoding="UTF-8"?>
<project-shared-configuration>
<!--
This file contains additional configuration written by modules in the NetBeans IDE.
The configuration is intended to be shared among all the users of project and
therefore it is assumed to be part of version control checkout.
Without this configuration present, some functionality in the IDE may be limited or fail altogether.
-->
<properties xmlns="http://www.netbeans.org/ns/maven-properties-data/1">
<!--
Properties that influence various parts of the IDE, especially code formatting and the like.
You can copy and paste the single properties, into the pom.xml file and the IDE will pick them up.
That way multiple projects can share the same settings (useful for formatting rules for example).
Any value defined here will override the pom.xml file value but is only applicable to the current project.
-->
<org-netbeans-modules-maven-j2ee.netbeans_2e_hint_2e_j2eeVersion>10-web</org-netbeans-modules-maven-j2ee.netbeans_2e_hint_2e_j2eeVersion>
<org-netbeans-modules-maven-j2ee.netbeans_2e_hint_2e_deploy_2e_server>gfv700ee10</org-netbeans-modules-maven-j2ee.netbeans_2e_hint_2e_deploy_2e_server>
<org-netbeans-modules-projectapi.jsf_2e_language>Facelets</org-netbeans-modules-projectapi.jsf_2e_language>
<netbeans.hint.jdkPlatform>JDK_11__System_</netbeans.hint.jdkPlatform>
<org-netbeans-modules-css-prep.less_2e_mappings>/less:/css</org-netbeans-modules-css-prep.less_2e_mappings>
<org-netbeans-modules-css-prep.less_2e_enabled>false</org-netbeans-modules-css-prep.less_2e_enabled>
<org-netbeans-modules-css-prep.sass_2e_enabled>false</org-netbeans-modules-css-prep.sass_2e_enabled>
<org-netbeans-modules-css-prep.sass_2e_compiler_2e_options/>
<org-netbeans-modules-css-prep.less_2e_compiler_2e_options/>
<org-netbeans-modules-css-prep.sass_2e_mappings>/scss:/css</org-netbeans-modules-css-prep.sass_2e_mappings>
</properties>
</project-shared-configuration>

@ -0,0 +1,82 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>edu.slcc.asdv</groupId>
<artifactId>suppliers_parts</artifactId>
<version>1</version>
<packaging>war</packaging>
<name>suppliers_parts-1</name>
<properties>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
<endorsed.dir>${project.build.directory}/endorsed</endorsed.dir>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<failOnMissingWebXml>false</failOnMissingWebXml>
<jakartaee>10.0.0</jakartaee>
</properties>
<dependencies>
<dependency>
<groupId>jakarta.platform</groupId>
<artifactId>jakarta.jakartaee-api</artifactId>
<version>${jakartaee}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.33</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>11</source>
<target>11</target>
<compilerArguments>
<endorseddirs>${endorsed.dir}</endorseddirs>
</compilerArguments>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.3</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.6</version>
<executions>
<execution>
<phase>validate</phase>
<goals>
<goal>copy</goal>
</goals>
<configuration>
<outputDirectory>${endorsed.dir}</outputDirectory>
<silent>true</silent>
<artifactItems>
<artifactItem>
<groupId>jakarta.platform</groupId>
<artifactId>jakarta.jakartaee-api</artifactId>
<version>${jakartaee}</version>
<type>jar</type>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>

@ -0,0 +1,15 @@
/*
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Interface.java to edit this template
*/
package edu.slcc.asdv.bl;
import java.util.List;
/**
*
* @author caleb
*/
public interface DBase<T> {
List<? extends List<T>> listAll();
}

@ -0,0 +1,109 @@
/*
* 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.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
/**
*
* @author caleb
*/
public class DatabaseManipulationSupplier implements DBase<Supplier> {
@Override
public List<List<Supplier>> listAll()
{
List<List<? extends Supplier>> tableSuppliers = new ArrayList<ArrayList<Supplier>>();
Connection con = connection();
if (con == null) {
result = "cannot connect to database";
return;
}
String table = "";
PreparedStatement ps = null;
ResultSet rs = null;
String sqlStr = "SELECT * FROM supplier";
try {
//prepare statement
ps = con.prepareStatement(sqlStr);
//execute
rs = ps.executeQuery();
while (rs.next()) {
String sNumber = rs.getString(1) + " ";
String sName = rs.getString(2) + " ";
String bdate = rs.getDate(3) + " ";
String status = rs.getInt(4) + " ";
String city = rs.getString(5) + " ";
table += sNumber + sName + bdate + status + city + "</br>";
}
} catch (Exception ex) {
ex.printStackTrace();
} finally {
try {
closeDatabaseConnection(con);
// close the resources
if (ps != null) {
ps.close();
}
} catch (SQLException sqle) {
sqle.printStackTrace();
}
}
result = table;
}
public void viewSupplier()
{
Connection con = connection();
if (con == null) {
result = "cannot connect to database";
return;
}
String ret = "";
PreparedStatement ps = null;
ResultSet rs = null;
String sqlStr = "SELECT snumber, sname, status, city, birthday FROM supplier WHERE snumber=?";
try {
//prepare statement
ps = con.prepareStatement(sqlStr);
ps.setString(1, snumber);
//execute
rs = ps.executeQuery();
if (rs.next()) {
this.snumber = rs.getString("snumber");
ret += this.snumber + " ";
this.sname = rs.getString("sname");
ret += this.sname + " ";
this.status = rs.getInt("status");
ret += this.status + " ";
this.city = rs.getString("city");
ret += this.city + " ";
Object bDate = rs.getObject("birthday");
this.birthday = bDate.toString();
ret += this.birthday;
} else {
ret = this.snumber + " doesn't exist.";
}
} catch (Exception ex) {
ex.printStackTrace();
} finally {
try {
this.closeDatabaseConnection(con);
if (ps != null) {
ps.close();
}
} catch (SQLException sqle) {
sqle.printStackTrace();
}
}
this.result = ret;
}
}

@ -0,0 +1,55 @@
/*
* 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;
/**
*
* @author caleb
*/
public class Supplier {
private String snumber;
private String sname;
public String getSname()
{
return sname;
}
public void setSname(String sname)
{
this.sname = sname;
}
private String birthday;
public String getBirthday()
{
return birthday;
}
public void setBirthday(String birthday)
{
this.birthday = birthday;
}
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 + '}';
}
}

@ -0,0 +1,380 @@
package edu.slcc.asdv.bl;
import java.io.Serializable;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Named;
/**
*
* @author a. v. markou
*/
@Named(value = "suppliers")
@ApplicationScoped
public class Suppliers implements Serializable {
String snumber = "";
String sname = "";
int status = 0;
String birthday = "";
String city = "";
String result = "";
public Suppliers()
{
connection();
}
public String getSnumber()
{
return snumber;
}
public void setSnumber(String snumber)
{
this.snumber = snumber;
}
public String getSname()
{
return sname;
}
public void setSname(String sname)
{
this.sname = sname;
}
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 String getCity()
{
return city;
}
public void setCity(String city)
{
this.city = city;
}
public String getConnectionResponse()
{
Connection con = connection();
if (con == null) {
result = "cannot connect to database";
return null;
}
if (con != null) {
return "<p style=\"color:green\">Connection succesfull! <br />";
} else {
connection();
return "<p style=\"color:red\">Connection failed! <br />";
}
}
private Connection connection() //throws InstantiationException, IllegalAccessException
{
/*
String databaseName = "suppliers_parts_23";
String userName = "admin";
String password = "RangerDog01!";
String URL2 = "com.mysql.jdbc.Driver";
Connection con = null;
*/
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 + "?useSSL=false";
System.out.println(url);
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 clear()
{
status = 0;
snumber = "";
sname = "";
birthday = "";
city = "";
result = "";
}
public void listAll()
{
Connection con = connection();
if (con == null) {
result = "cannot connect to database";
return;
}
String table = "";
PreparedStatement ps = null;
ResultSet rs = null;
String sqlStr = "SELECT * FROM supplier";
try {
//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 = rs.getDate(3) + " ";
String status = rs.getInt(4) + " ";
String city = rs.getString(5) + " ";
table += sNumber + sName + bdate + status + city + "</br>";
row++;
}
} catch (Exception ex) {
ex.printStackTrace();
} finally {
try {
closeDatabaseConnection(con);
// close the resources
if (ps != null) {
ps.close();
}
} catch (SQLException sqle) {
sqle.printStackTrace();
}
}
result = table;
}
public void viewSupplier()
{
Connection con = connection();
if (con == null) {
result = "cannot connect to database";
return;
}
String ret = "";
PreparedStatement ps = null;
ResultSet rs = null;
String sqlStr = "SELECT snumber, sname, status, city, birthday FROM supplier WHERE snumber=?";
try {
//prepare statement
ps = con.prepareStatement(sqlStr);
ps.setString(1, snumber);
//execute
rs = ps.executeQuery();
if (rs.next()) {
this.snumber = rs.getString("snumber");
ret += this.snumber + " ";
this.sname = rs.getString("sname");
ret += this.sname + " ";
this.status = rs.getInt("status");
ret += this.status + " ";
this.city = rs.getString("city");
ret += this.city + " ";
Object bDate = rs.getObject("birthday");
this.birthday = bDate.toString();
ret += this.birthday;
} else {
ret = this.snumber + " doesn't exist.";
}
} catch (Exception ex) {
ex.printStackTrace();
} finally {
try {
this.closeDatabaseConnection(con);
if (ps != null) {
ps.close();
}
} catch (SQLException sqle) {
sqle.printStackTrace();
}
}
this.result = ret;
}
public void updateSupplier()
{
Connection con = connection();
if (con == null) {
result = "cannot connect to database";
return;
}
PreparedStatement updateSupplier = null;
try {
updateSupplier = con.prepareStatement(
"UPDATE supplier SET snumber=?, sname=?, status=?, birthday=?, city=? WHERE snumber=?");
updateSupplier.setString(1, snumber);
updateSupplier.setString(2, sname);
updateSupplier.setInt(3, status);
java.sql.Date bd = stringDateToSqlDate(this.birthday);
updateSupplier.setDate(4, bd);
updateSupplier.setString(5, city);
updateSupplier.setString(6, snumber);
int updateCount = updateSupplier.executeUpdate();
result = "number of rows affected: " + updateCount;
} catch (Exception ex) {
System.err.println(ex.toString());
} finally {
try {
this.closeDatabaseConnection(con);
// close the resources
if (updateSupplier != null) {
updateSupplier.close();
}
} catch (SQLException sqlee) {
sqlee.printStackTrace();
}
}
}
public void deleteSupplier()
{
Connection con = connection();
if (con == null) {
result = "cannot connect to database";
return;
}
PreparedStatement ps = null;
int rowsAffected = -1;
try {
String query = "DELETE FROM supplier WHERE snumber=? ";
ps = con.prepareStatement(query);
ps.setString(1, snumber);
rowsAffected = ps.executeUpdate();
result = "number of rows affected: " + rowsAffected;
} catch (Exception ex) {
System.err.println(ex.toString());
} finally {
try {
this.closeDatabaseConnection(con);
// close the resources
if (ps != null) {
ps.close();
}
} catch (SQLException sqlee) {
sqlee.printStackTrace();
}
}
}
public void insertSupplier()
{
Connection con = connection();
if (con == null) {
result = "cannot connect to database";
return;
}
PreparedStatement updateSupplier = null;
try {
updateSupplier = con.prepareStatement(
"INSERT INTO supplier (snumber, sname, status, birthday, city ) "
+ "VALUES ( ?, ?, ? , ? ,? )");
updateSupplier.setString(1, snumber);
updateSupplier.setString(2, sname);
updateSupplier.setInt(3, status);
java.sql.Date sqlDate = stringDateToSqlDate(birthday);
updateSupplier.setDate(4, sqlDate);
updateSupplier.setString(5, city);
int updateCount = updateSupplier.executeUpdate();
result = "number of rows affected: " + updateCount;
} catch (Exception ex) {
System.err.println(ex.toString());
result = ex.toString();
} finally {
try {
this.closeDatabaseConnection(con);
// close the resources
if (updateSupplier != null) {
updateSupplier.close();
}
} catch (SQLException e) {
System.err.println(e.toString());
result = e.toString();
}
}
}
private 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 String getResult()
{
return "<p style=\"color:green\">Suppliers <br />" + result;
}
public void closeDatabaseConnection(Connection con)
{
try {
if (con != null) {
con.close();
}
} catch (SQLException e) {
result = e.toString();
e.printStackTrace();
}
}
}

@ -0,0 +1,13 @@
package edu.slcc.asdv.suppliers_parts;
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 edu.slcc.asdv.suppliers_parts.resources;
import jakarta.ws.rs.GET;
import jakarta.ws.rs.Path;
import jakarta.ws.rs.core.Response;
/**
*
* @author
*/
@Path("jakartaee10")
public class JakartaEE10Resource {
@GET
public Response ping(){
return Response
.ok("ping Jakarta EE")
.build();
}
}

@ -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,21 @@
<?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>
<title>Facelet Title</title>
</h:head>
<h:body>
<h:form>
<h:panelGrid columns="2">
<h:outputLabel value="table name "/>
<h:inputText value="#{queryBean.tableName}"/>
<h:commandButton value="SELECT * FROM table" action="#{queryBean.queries()}"/>
<h:outputText escape="false" style="color:green" value="#{queryBean.table}"> </h:outputText>
</h:panelGrid>
</h:form>
</h:body>
</html>

@ -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_4_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="6.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_6_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/index.xhtml</welcome-file>
</welcome-file-list>
</web-app>

@ -0,0 +1,52 @@
<?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">
<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,14 @@
<?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="jakarta.faces.html">
<h:head>
<title>Facelet Title</title>
</h:head>
<h:body>
Hello from Facelets
<h:dataTable var="tableSupplier" value="#{supplierBean}">
<f:facet name="snumber">
</h:dataTable>
</h:body>
</html>

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<project-shared-configuration>
<!--
This file contains additional configuration written by modules in the NetBeans IDE.
The configuration is intended to be shared among all the users of project and
therefore it is assumed to be part of version control checkout.
Without this configuration present, some functionality in the IDE may be limited or fail altogether.
-->
<properties xmlns="http://www.netbeans.org/ns/maven-properties-data/1">
<!--
Properties that influence various parts of the IDE, especially code formatting and the like.
You can copy and paste the single properties, into the pom.xml file and the IDE will pick them up.
That way multiple projects can share the same settings (useful for formatting rules for example).
Any value defined here will override the pom.xml file value but is only applicable to the current project.
-->
<org-netbeans-modules-maven-j2ee.netbeans_2e_hint_2e_j2eeVersion>10-web</org-netbeans-modules-maven-j2ee.netbeans_2e_hint_2e_j2eeVersion>
<org-netbeans-modules-maven-j2ee.netbeans_2e_hint_2e_deploy_2e_server>gfv700ee10</org-netbeans-modules-maven-j2ee.netbeans_2e_hint_2e_deploy_2e_server>
<org-netbeans-modules-projectapi.jsf_2e_language>Facelets</org-netbeans-modules-projectapi.jsf_2e_language>
<netbeans.hint.jdkPlatform>JDK_11__System_</netbeans.hint.jdkPlatform>
</properties>
</project-shared-configuration>

@ -0,0 +1,42 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>edu.slcc.asdv.caleb</groupId>
<artifactId>ProgrammingExam1Question3_CalebFontenot</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<name>ProgrammingExam1Question3_CalebFontenot-1.0-SNAPSHOT</name>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<jakartaee>10.0.0</jakartaee>
</properties>
<dependencies>
<dependency>
<groupId>jakarta.platform</groupId>
<artifactId>jakarta.jakartaee-api</artifactId>
<version>${jakartaee}</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>11</source>
<target>11</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.3.2</version>
</plugin>
</plugins>
</build>
</project>

@ -0,0 +1,58 @@
/*
* 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 bean;
import jakarta.annotation.ManagedBean;
import jakarta.enterprise.context.RequestScoped;
import jakarta.inject.Named;
import jakarta.enterprise.context.SessionScoped;
import jakarta.faces.application.FacesMessage;
import jakarta.faces.context.FacesContext;
import java.io.Serializable;
/**
*
* @author caleb
*/
@Named(value="pageBean")
@RequestScoped
public class PageBean implements Serializable{
private String name;
private int age;
public String getName()
{
return name;
}
public int getAge()
{
return age;
}
public void setName(String name)
{
this.name = name;
}
public void setAge(int age)
{
this.age = age;
}
public void concatenate() {
String output = name + ", " + age;
System.out.println(output);
FacesContext context = FacesContext.getCurrentInstance();
FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_INFO, output, null);
context.addMessage(null, message);
}
/** Creates a new instance of PageBean */
public PageBean() {
}
}

@ -0,0 +1,13 @@
package edu.slcc.asdv.caleb.programmingexam1question3_calebfontenot;
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 edu.slcc.asdv.caleb.programmingexam1question3_calebfontenot.resources;
import jakarta.ws.rs.GET;
import jakarta.ws.rs.Path;
import jakarta.ws.rs.core.Response;
/**
*
* @author
*/
@Path("jakartaee10")
public class JakartaEE10Resource {
@GET
public Response ping(){
return Response
.ok("ping Jakarta EE")
.build();
}
}

@ -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_4_0.xsd"
bean-discovery-mode="all">
</beans>

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
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
-->
<!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">
<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/index.xhtml</welcome-file>
</welcome-file-list>
</web-app>

@ -0,0 +1,16 @@
<?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="jakarta.faces.html">
<h:head>
<title>Facelet Title</title>
</h:head>
<h:body>
<h:form>
<h1>Problem 3</h1>
Name: <h:inputText value="#{pageBean.name}"/> <br/>
Age: <h:inputText value="#{pageBean.age}"/> <br/>
<h:commandButton value="Concatenate Name and Age" action="#{pageBean.concatenate()}"/>
</h:form>
</h:body>
</html>

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<project-shared-configuration>
<!--
This file contains additional configuration written by modules in the NetBeans IDE.
The configuration is intended to be shared among all the users of project and
therefore it is assumed to be part of version control checkout.
Without this configuration present, some functionality in the IDE may be limited or fail altogether.
-->
<properties xmlns="http://www.netbeans.org/ns/maven-properties-data/1">
<!--
Properties that influence various parts of the IDE, especially code formatting and the like.
You can copy and paste the single properties, into the pom.xml file and the IDE will pick them up.
That way multiple projects can share the same settings (useful for formatting rules for example).
Any value defined here will override the pom.xml file value but is only applicable to the current project.
-->
<org-netbeans-modules-maven-j2ee.netbeans_2e_hint_2e_j2eeVersion>10-web</org-netbeans-modules-maven-j2ee.netbeans_2e_hint_2e_j2eeVersion>
<org-netbeans-modules-maven-j2ee.netbeans_2e_hint_2e_deploy_2e_server>gfv700ee10</org-netbeans-modules-maven-j2ee.netbeans_2e_hint_2e_deploy_2e_server>
<org-netbeans-modules-projectapi.jsf_2e_language>Facelets</org-netbeans-modules-projectapi.jsf_2e_language>
<netbeans.hint.jdkPlatform>JDK_11__System_</netbeans.hint.jdkPlatform>
</properties>
</project-shared-configuration>

@ -0,0 +1,47 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>edu.slcc.asdv.caleb</groupId>
<artifactId>ProgrammingExam1Question5</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<name>ProgrammingExam1Question5-1.0-SNAPSHOT</name>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<jakartaee>10.0.0</jakartaee>
</properties>
<dependencies>
<dependency>
<groupId>jakarta.platform</groupId>
<artifactId>jakarta.jakartaee-api</artifactId>
<version>${jakartaee}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.33</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>11</source>
<target>11</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.3.2</version>
</plugin>
</plugins>
</build>
</project>

@ -0,0 +1,13 @@
package edu.slcc.asdv.caleb.programmingexam1question5;
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 edu.slcc.asdv.caleb.programmingexam1question5.resources;
import jakarta.ws.rs.GET;
import jakarta.ws.rs.Path;
import jakarta.ws.rs.core.Response;
/**
*
* @author
*/
@Path("jakartaee10")
public class JakartaEE10Resource {
@GET
public Response ping(){
return Response
.ok("ping Jakarta EE")
.build();
}
}

@ -0,0 +1,71 @@
/*
* 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 pojo;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
/**
*
* @author caleb
*/
public class DBConnection {
public Connection connection(
String databaseName,
String userName,
String password,
String URL2
) //throws InstantiationException, IllegalAccessException
{
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 + ":8889/" + databaseName + "?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();
}
}
}

@ -0,0 +1,78 @@
/*
* 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 pojo;
import java.sql.Connection;
import java.sql.ParameterMetaData;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
/**
*
* @author caleb
*/
public class DatabaseManipulation {
public List<Travel> listAll()
{
List<Travel> tavelTable = new ArrayList<Travel>();
String databaseName = "travel";
String userName = "java";
String password = "]7tSXk.vIKpEjAb.";
String URL2 = "com.mysql.jdbc.Driver";
Connection con = new DBConnection().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 passenger";
//prepare statement
ps = con.prepareStatement(sqlStr);
//execute
rs = ps.executeQuery();
int row = 0;
while (rs.next())
{
int age = rs.getInt(1);
int pid = rs.getInt(2);
String pname = rs.getString(3);
Travel travel = new Travel(age, pid, pname);
tavelTable.add(travel);
row++;
}
}
catch (Exception ex)
{
ex.printStackTrace();
}
finally
{
try
{
new DBConnection().closeDatabaseConnection(con);
// close the resources
if (ps != null)
{
ps.close();
}
}
catch (SQLException sqle)
{
sqle.printStackTrace();
}
}
return tavelTable;
}
}

@ -0,0 +1,86 @@
/*
* 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 pojo;
/**
*
* @author caleb
*/
public class Travel {
private int age;
private int pid;
private String pname;
/**
* Get the value of pname
*
* @return the value of pname
*/
public String getPname()
{
return pname;
}
/**
* Set the value of pname
*
* @param pname new value of pname
*/
public void setPname(String pname)
{
this.pname = pname;
}
/**
* Get the value of pid
*
* @return the value of pid
*/
public int getPid()
{
return pid;
}
/**
* Set the value of pid
*
* @param pid new value of pid
*/
public void setPid(int pid)
{
this.pid = pid;
}
public Travel(int age, int pid, String pname)
{
this.age = age;
this.pid = pid;
this.pname = pname;
}
/**
* Get the value of age
*
* @return the value of age
*/
public int getAge()
{
return age;
}
/**
* Set the value of age
*
* @param age new value of age
*/
public void setAge(int age)
{
this.age = age;
}
}

@ -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_4_0.xsd"
bean-discovery-mode="all">
</beans>

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
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
-->
<!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">
<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/index.xhtml</welcome-file>
</welcome-file-list>
</web-app>

@ -0,0 +1,54 @@
<?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="jakarta.faces.html">
<h:head>
<title>Facelet Title</title>
</h:head>
<h:form>
<h:dataTable var="travelTable"
value="#{supplierBean.getTrav()}" >
<f:facet name="header"> <h:outputText value="Suppliers Table" style="font-size: 1.2em"/></f:facet>
<h:column>
<f:facet name="header"> <h:outputText value="snumber" /></f:facet>
<h:inputText disabled ="true" value="#{supplier.snumber}"/>
</h:column>
<h:column>
<f:facet name="header"> <h:outputText value="sname" /></f:facet>
<h:inputText disabled ="#{!supplier.modify}" value="#{supplier.sname}"/>
</h:column>
<h:column>
<f:facet name="header"> <h:outputText value="birthday" /></f:facet>
<h:inputText disabled ="#{!supplier.modify}" value="#{supplier.birthday}"/>
</h:column>
<h:column>
<f:facet name="header"> <h:outputText value="status" /></f:facet>
<h:inputText disabled ="#{!supplier.modify}" value="#{supplier.status}"/>
</h:column>
<h:column>
<f:facet name="header"> <h:outputText value="city" /></f:facet>
<h:inputText disabled ="#{!supplier.modify}" value="#{supplier.city}"/>
</h:column>
<h:column>
<f:facet name="header"> <h:outputText value="update" /></f:facet>
<h:selectBooleanCheckbox onclick="submit()"
value="#{supplier.modify}">
</h:selectBooleanCheckbox >
</h:column>
</h:dataTable>
<h:commandButton value="Save" action="#{supplierBean.saveFromUpdate()}" />
</h:form>
</h:body>
</html>

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<project-shared-configuration>
<!--
This file contains additional configuration written by modules in the NetBeans IDE.
The configuration is intended to be shared among all the users of project and
therefore it is assumed to be part of version control checkout.
Without this configuration present, some functionality in the IDE may be limited or fail altogether.
-->
<properties xmlns="http://www.netbeans.org/ns/maven-properties-data/1">
<!--
Properties that influence various parts of the IDE, especially code formatting and the like.
You can copy and paste the single properties, into the pom.xml file and the IDE will pick them up.
That way multiple projects can share the same settings (useful for formatting rules for example).
Any value defined here will override the pom.xml file value but is only applicable to the current project.
-->
<org-netbeans-modules-maven-j2ee.netbeans_2e_hint_2e_j2eeVersion>10-web</org-netbeans-modules-maven-j2ee.netbeans_2e_hint_2e_j2eeVersion>
<org-netbeans-modules-maven-j2ee.netbeans_2e_hint_2e_deploy_2e_server>gfv700ee10</org-netbeans-modules-maven-j2ee.netbeans_2e_hint_2e_deploy_2e_server>
<org-netbeans-modules-projectapi.jsf_2e_language>Facelets</org-netbeans-modules-projectapi.jsf_2e_language>
<netbeans.hint.jdkPlatform>JDK_11__System_</netbeans.hint.jdkPlatform>
</properties>
</project-shared-configuration>

@ -0,0 +1,50 @@
<?xml version="1.0" encoding="UTF-8"?>
<actions>
<action>
<actionName>run</actionName>
<packagings>
<packaging>war</packaging>
<packaging>ear</packaging>
<packaging>ejb</packaging>
</packagings>
<goals>
<goal>package</goal>
</goals>
<properties>
<netbeans.deploy>true</netbeans.deploy>
<netbeans.deploy.clientUrlPart></netbeans.deploy.clientUrlPart>
</properties>
</action>
<action>
<actionName>debug</actionName>
<packagings>
<packaging>war</packaging>
<packaging>ear</packaging>
<packaging>ejb</packaging>
</packagings>
<goals>
<goal>package</goal>
</goals>
<properties>
<netbeans.deploy.debugmode>true</netbeans.deploy.debugmode>
<netbeans.deploy>true</netbeans.deploy>
<netbeans.deploy.clientUrlPart></netbeans.deploy.clientUrlPart>
</properties>
</action>
<action>
<actionName>profile</actionName>
<packagings>
<packaging>ejb</packaging>
<packaging>ear</packaging>
<packaging>war</packaging>
</packagings>
<goals>
<goal>package</goal>
</goals>
<properties>
<netbeans.deploy>true</netbeans.deploy>
<netbeans.deploy.profilemode>true</netbeans.deploy.profilemode>
<netbeans.deploy.clientUrlPart></netbeans.deploy.clientUrlPart>
</properties>
</action>
</actions>

@ -0,0 +1,42 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>edu.slcc.asdv.caleb</groupId>
<artifactId>ProgrammingExam1_CalebFontenot</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<name>ProgrammingExam1_CalebFontenot-1.0-SNAPSHOT</name>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<jakartaee>10.0.0</jakartaee>
</properties>
<dependencies>
<dependency>
<groupId>jakarta.platform</groupId>
<artifactId>jakarta.jakartaee-api</artifactId>
<version>${jakartaee}</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>11</source>
<target>11</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.3.2</version>
</plugin>
</plugins>
</build>
</project>

@ -0,0 +1,40 @@
/*
* 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 beans;
import exam.Class1;
import jakarta.inject.Named;
import jakarta.enterprise.context.RequestScoped;
import jakarta.enterprise.context.SessionScoped;
/**
*
* @author caleb
*/
@Named(value="myBean")
@RequestScoped
public class MyBean {
private final Class1 classObject = new Class1(1, "John");
public Class1 getClassObject()
{
return classObject;
}
/** Creates a new instance of MyBean */
public MyBean() {
System.out.println("MyBean constructor invoked");
}
public static void main(String[] args)
{
MyBean myBean = new MyBean();
System.out.println(myBean.getClassObject());
}
}

@ -0,0 +1,13 @@
package edu.slcc.asdv.caleb.programmingexam1_calebfontenot;
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 edu.slcc.asdv.caleb.programmingexam1_calebfontenot.resources;
import jakarta.ws.rs.GET;
import jakarta.ws.rs.Path;
import jakarta.ws.rs.core.Response;
/**
*
* @author
*/
@Path("jakartaee10")
public class JakartaEE10Resource {
@GET
public Response ping(){
return Response
.ok("ping Jakarta EE")
.build();
}
}

@ -0,0 +1,50 @@
/*
* 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 exam;
import java.util.Random;
/**
*
* @author caleb
*/
public class Class1 implements Interface1 {
private int x = 0;
private String y;
public Class1(int x, String y)
{
this.x = x;
this.y = y;
}
public String getY()
{
return y;
}
public void setY(String y)
{
this.y = y;
}
public int getX()
{
return x;
}
public void setX(int x)
{
this.x = x;
}
@Override
public int f1()
{
Random r = new Random();
return r.nextInt(100);
}
}

@ -0,0 +1,16 @@
/*
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Interface.java to edit this template
*/
package exam;
/**
*
* @author caleb
*/
public interface Interface1 {
/*
@return a random integer in the range 0 to 100
*/
int f1();
}

@ -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_4_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>

Some files were not shown because too many files have changed in this diff Show More