Product maintenance with a database

Assignment Help JAVA Programming
Reference no: EM13201569

Part 1: Product Maintenance

You'll create a series of pages that allow you to add, update, or delete a product that's available to the application.

The Index page

573_Product Maintenance.png


The Products page

2350_Product Maintenance1.png


The Product page

1823_Product Maintenance2.png


The Confirm Delete page

828_Product Maintenance3.png

Operation

• When the application starts, it displays the Index page. This page contains a link that leads to the Products page that can be used to add, update, or delete products.

• To add a new product, the user selects the Add Product button. This displays the Product page with all text fields empty. Then, the user can fill in the text fields and click on the Update Product button to add the product.

• To edit an existing product, the user selects the Edit link for the product. This displays the Product page with all existing data for the product displayed. Then, the user can edit any entries and click on the Update Product button to update the data for the existing product.

• To delete a product, the user selects the Delete link for the product. This displays the Confirm Delete page. Then, if the user confirms the deletion by selecting the Yes button, the product is deleted and the Products page is displayed to reflect the new data. If the user selects the No button, the Products page is displayed.

Specifications

• Use a Product class like the one shown later in this document to store the product data.
• Use a ProductIO class like the one shown later in this document to read and write the product data to a text file named products.txt in the WEB-INF directory.
• Use a text file like the products.txt file shown later in this document as a starting point for the products that are available to the application.
• Use server-side validation to validate all user entries. In particular, make sure the user enters a code, description, and price for each product. In addition, make sure the product's price is a valid double value.
• If possible, get the Product.java, ProductIO.java, and product.txt files from your instructor or trainer. Otherwise, you can import starting versions of these files from the book applications.

The Product class

package music.business;

import java.text.NumberFormat;
import java.io.Serializable;

public class Product implements Serializable
{
private String code;
private String description;
private double price;

public Product()
{
code = "";
description = "";
price = 0;
}

public void setCode(String code)
{
this.code = code;
}

public String getCode()
{
return code;
}

public void setDescription(String description)
{
this.description = description;
}

public String getDescription()
{
return description;
}

public void setPrice(double price)
{
this.price = price;
}

public double getPrice()
{
return price;
}

public String getPriceNumberFormat()
{
NumberFormat number = NumberFormat.getNumberInstance();
number.setMinimumFractionDigits(2);
if (price == 0)
return "";
else
return number.format(price);
}

public String getPriceCurrencyFormat()
{
NumberFormat currency = NumberFormat.getCurrencyInstance();
return currency.format(price);
}
}
The ProductIO class
package music.data;

import java.io.*;
import java.util.*;

import music.business.*;

public class ProductIO
{
private static ArrayList<Product> products = null;

public static ArrayList<Product> getProducts(String path)
{
products = new ArrayList<Product>();
File file = new File(path);
try
{
BufferedReader in =
new BufferedReader(
new FileReader(file));

String line = in.readLine();
while (line != null)
{
StringTokenizer t = new StringTokenizer(line, "|");
if (t.countTokens() >= 3)
{
String code = t.nextToken();
String description = t.nextToken();
String priceAsString = t.nextToken();
double price = Double.parseDouble(priceAsString);

Product p = new Product();
p.setCode(code);
p.setDescription(description);
p.setPrice(price);

products.add(p);
}
line = in.readLine();
}
in.close();
return products;
}
catch(IOException e)
{
e.printStackTrace();
return null;
}
}

public static Product getProduct(String productCode, String path)
{
products = getProducts(path);
for (Product p : products)
{
if (productCode != null &&
productCode.equalsIgnoreCase(p.getCode()))
{
return p;
}
}
return null;
}

public static boolean exists(String productCode, String path)
{
products = getProducts(path);
for (Product p : products)
{
if (productCode != null &&
productCode.equalsIgnoreCase(p.getCode()))
{
return true;
}
}
return false;
}

private static void saveProducts(ArrayList<Product> products,
String path)
{
try
{
File file = new File(path);
PrintWriter out =
new PrintWriter(
new FileWriter(file));

for (Product p : products)
{
out.println(p.getCode() + "|"
+ p.getDescription() + "|"
+ p.getPrice());
}

out.close();
}
catch(IOException e)
{
e.printStackTrace();
}
}

public static void insert(Product product, String path)
{
products = getProducts(path);
products.add(product);
saveProducts(products, path);
}

public static void update(Product product, String path)
{
products = getProducts(path);
for (int i = 0; i < products.size(); i++)
{
Product p = products.get(i);
if (product.getCode() != null &&
product.getCode().equalsIgnoreCase(p.getCode()))
{
products.set(i, product);
}
}
saveProducts(products, path);
}

public static void delete(Product product, String path)
{
products = getProducts(path);
for (int i = 0; i < products.size(); i++)
{
Product p = products.get(i);
if (product != null &&
product.getCode().equalsIgnoreCase(p.getCode()))
{
products.remove(i);
}
}
saveProducts(products, path);
}
}
A product.txt file that contains four products
8601|86 (the band) - True Life Songs and Pictures|14.95
pf01|Paddlefoot - The first CD|12.95
pf02|Paddlefoot - The second CD|14.95
jr01|Joe Rut - Genuine Wood Grained Finish|14.95

Part 2: Product Maintenance without scripting

For this part, you'll enhance the application described in part 1 by removing the scripting from the JSPs and by adding a custom tag to validate user entries. (Prerequisites: chapters 1-12)

The Product page with custom tags for validation

Specifications

• Use EL and JSTL to remove all scripting from the JSPs.
• Use a custom tag to mark empty fields that are required on the Product page with an asterisk.

Part 3: Product Maintenance with a database

For this part, you'll enhance the application described in the previous part by modifying it so it uses a database instead of a text file to store the product data.

The Product page

Specifications

• Use a class named ProductDB that's in the music.data package to add, update, and delete the products in the Product Maintenance application.

• Use a connection pool as described in chapter 14.

• Use the music database that's created when you do the procedure for creating the databases that's described in appendix A.

Reference no: EM13201569

Questions Cloud

How does the economy affect foreign policy making decisions : How does the economy affect foreign policy making decisions.
The theorems of polynomials except involving irreducibility : The nonconstant polynomial p(x) an element of F[x] is irreducible over F iff for all f(x), g(x) an element of F[x], p(x)|(f(x)g(x)) implies p(x)|f(x) or p(x)|g(x), or any other known theorems of polynomials except those involving irreducibility.
What were the antagonists to these muscles : Ann was reaching up to grab a box of cereal that was on top of the refrigerator. She had extended her arm as well as stood on her tip-toes to reach the box. Which primary muscle allowed Ann to extend her elbow and which two primary muscles allowed he..
Determine how often does tracy go to the atm : Solve Tracy's problem of how often to go to the ATM when nominal interest rate on her bank account is 10%, she spends $30 each day, it cost her $0.50 each time she uses the atm, and she thinks that there is a 15% chance.
Product maintenance with a database : Use a class named ProductDB that's in the music.data package to add, update, and delete the products in the Product Maintenance application.
Find the maximum height : A ball is thrown upward with a speed of 96 ft/s from the top of a building if height 432. Find the maximum height that it can reach.
What is the probablitiy that teresa and jaime : Teresa and Jamie are among 10 students who have applied for a trip to Washington. Two students from the group will be selected at random . What is the probablitiy that Teresa and Jaime will be the 2 students.
Define why the government imposes a sales tax : Suppose the market for cigarettes is characterized by the following information: Qd = 70 - 5P [Demand] Qs = 3P - 10 [Supply] Suppose the government imposes a sales tax of $2 per unit.
Mental health clinic is phototherapyy : The treatment recommended for a patient at the mental health clinic is phototherapyy. What is the likely diagnosis?

Reviews

Write a Review

JAVA Programming Questions & Answers

  Pronouns, and prepositions

Type addKeyword(): for each word on each page, add to a (keyword, URLs) list or dictionary, excluding articles, pronouns, and prepositions. For example:

  Calculate the maximum data rate in mb/second

b)How much cylinder skew is needed for an Oceangate disk operating at 20,000 rpm(new series for the Christmas promotions) which has a seek time of 0.5 milliseconds? This disk has 800 sectors of 512 bytes each on each track.

  Method that accepts a string object

Word Counter Write a method that accepts a String object as an argument and returns the number of words it contains. For instance, if the argument is "Four score and seven years ago" the method should return the number

  Design an object-oriented java application

You are to design an object-oriented Java application to let the user play a dice game that uses two dices. The player bets on a value and the dices roll

  Java program use breadth-first search closest broadcast

Write the java program which will use breadth-first search (which you implement as part of your program) to determine the closest broadcast vertex for each vertex in graph.

  Java :a user-defined starting position (other than 0,0)

modifying the program so that it can start from a user-defined starting position (other than 0,0) and search for a user defined ending point (other than row-1, column-1) .

  Create a book class

Create a Book class. In addition to properties of author and isbn, with setters/getters, the Book should override Object's base method "boolean equals(Object)" and have a "boolean validate()" method.

  Develop java applet that will help elementary school student

Develop a Java applet that will help an elementary school student learn multiplication. Use the Math.random method or a Random object to produce two positive one-digit integers.

  Image to a "black-to-green scale" image

Call a method that will change the image to a "black-to-green scale" image.

  Write a program that takes 10 values representin

Using a loop, write a program that takes 10 values representin exam grades (between 0 and 100) from the keyboard and outputs the minimum value, maximum value, and average value of all the values entered. Your program should not accept less than 0 ..

  String that contains at least five letters

Write an application that prompts the user for a String that contains at least five letters and at least five digits. Continuously reprompt the user until a valid String is entered. Display a message indicating whether the user was successful or did ..

  Program to track hourly employee arrival and departure time

THE JAVA SOURCE CODEA company hires you to write a program to track hourly employee arrival and departure times from work. In essence, you are tasked to make an online time clock. The time clock shall keep a history of an employee’s hours for a two-w..

Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd