*internal screaming*

This commit is contained in:
2023-10-20 13:38:03 -05:00
parent b072abc361
commit 4f7b942791
61 changed files with 2615 additions and 101 deletions

View File

@@ -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();
}

View File

@@ -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;
}
}

View File

@@ -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 + '}';
}
}

View File

@@ -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();
}
}
}

View File

@@ -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 {
}

View File

@@ -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();
}
}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -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;
}

View File

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