Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.cg.pms.ui;
- import java.util.List;
- import java.util.Scanner;
- import com.cg.pms.dto.Product;
- import com.cg.pms.exception.ProductException;
- import com.cg.pms.service.IProductService;
- import com.cg.pms.service.ProductServiceImpl;
- public class MyTest {
- public static void main(String[] args)
- {
- int choice=0;
- //Run Time Polymorphism
- IProductService prodservice=new ProductServiceImpl();
- do{
- printDetail();
- Scanner scr=new Scanner(System.in);
- System.out.println("Enter Your Choice:");
- choice=scr.nextInt();
- switch(choice)
- {
- case 1://Add
- int msg=0;
- //System.out.println("Enter the product Id:");
- //int prodId=scr.nextInt();
- //Pattern
- String patt="[A-Z][a-z]{2,19}";
- //Asking user for input
- System.out.println("Enter the product name");
- String prodName=scr.next();
- try {
- ProductServiceImpl.validateName(prodName,patt);
- } catch (ProductException e1) {
- // TODO Auto-generated catch block
- //e1.printStackTrace();
- System.out.println(e1.getMessage());
- break;
- }
- System.out.println("Enter the Price:");
- double prodPrice=scr.nextDouble();
- System.out.println("Enter product Description");
- String prodDes=scr.next();
- Product prod=new Product();
- //prod.setProductId(prodId);
- prod.setProductName(prodName);
- prod.setProductPrice(prodPrice);
- prod.setProductDes(prodDes);
- //Calling Service Layer.....
- try {
- msg = prodservice.addProduct(prod);
- }
- catch (ProductException e)
- {
- e.printStackTrace();
- System.out.println(e.getMessage());
- }
- if(msg==0)
- {
- System.out.println("Data not Inserted");
- }
- else
- {
- System.out.println("Data Inserted Product Id is:"+msg);
- }
- break;
- case 2://showAll
- List<Product> myProd=null;
- try {
- myProd = prodservice.showall();
- } catch (ProductException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- System.out.println(e.getMessage());
- }
- for (Product product : myProd)
- {
- System.out.println("Id is"+product.getProductId());
- System.out.println("Name is"+product.getProductName());
- System.out.println("Price is"+product.getProductPrice());
- System.out.println("Description is"+product.getProductDes());
- }
- break;
- case 3://Search
- System.out.println("Enter Product Id.");
- int id=scr.nextInt();
- Product mySearchProd=null;
- try{
- mySearchProd=prodservice.searchProduct(id);
- }
- catch(ProductException e)
- {
- e.printStackTrace();
- System.out.println(e.getMessage());
- }
- System.out.println("Id is"+mySearchProd.getProductId());
- System.out.println("Name is"+mySearchProd.getProductName());
- System.out.println("Price is"+mySearchProd.getProductPrice());
- System.out.println("Description is"+mySearchProd.getProductDes());
- break;
- case 4://Remove
- break;
- case 5://Exit
- System.exit(0);
- break;
- default:
- System.out.println("Wrong Input Please Try again");
- }
- }while(choice!=5);
- }
- public static void printDetail()
- {
- System.out.println("********************************");
- System.out.println("1.Add Product");
- System.out.println("2.Show Product");
- System.out.println("3.Search Product");
- System.out.println("4.Remove Product");
- System.out.println("5.Exit");
- System.out.println("*********************************");
- }
- }
- ===============================================================================================
- import java.util.List;
- import com.cg.pms.dto.Product;
- import com.cg.pms.exception.ProductException;
- public interface IProductService
- {
- public int addProduct(Product prod) throws ProductException;
- public List<Product>showall() throws ProductException;
- public Product searchProduct(int prodID) throws ProductException;
- public void removeProduct(int prodId) throws ProductException;
- }
- ================================================================================================
- import java.util.List;
- import java.util.regex.Pattern;
- import com.cg.pms.dao.IProductDao;
- import com.cg.pms.dao.ProductDaoImpl;
- import com.cg.pms.dto.Product;
- import com.cg.pms.exception.ProductException;
- public class ProductServiceImpl implements IProductService
- {
- IProductDao prodDao=new ProductDaoImpl();
- @Override
- public int addProduct(Product prod) throws ProductException
- {
- return prodDao.addProduct(prod);
- }
- @Override
- public List<Product> showall() throws ProductException
- {
- return prodDao.showall();
- }
- @Override
- public Product searchProduct(int prodID) throws ProductException
- {
- return prodDao.searchProduct(prodID);
- }
- @Override
- public void removeProduct(int prodId)
- {
- }
- //Validations
- public static boolean validateName(String prodName,String prodPattern) throws ProductException
- {
- boolean validation=Pattern.matches(prodPattern,prodName);
- if(!validation){
- throw new ProductException("First Letter should be capital minimum 3 and maximum 20 characters");
- }
- return validation;
- }
- }
- =========================================================================================================
- import java.util.List;
- import com.cg.pms.dto.Product;
- import com.cg.pms.exception.ProductException;
- public interface IProductDao
- {
- public int addProduct(Product prod) throws ProductException ;
- public List<Product>showall() throws ProductException;
- public Product searchProduct(int prodID) throws ProductException;
- public void removeProduct(int prodId);
- }
- ============================================================================================================
- import java.sql.Connection;
- import java.sql.PreparedStatement;
- import java.sql.ResultSet;
- import java.sql.SQLException;
- import java.util.ArrayList;
- import java.util.List;
- import org.apache.log4j.Logger;
- import com.cg.pms.dto.Product;
- import com.cg.pms.exception.ProductException;
- import com.cg.pms.util.DbUtil;
- public class ProductDaoImpl implements IProductDao
- {
- private static final Logger mylog=Logger.getLogger(ProductDaoImpl.class);
- static Connection conn=null;
- static PreparedStatement pstm=null;
- @Override
- public int addProduct(Product prod) throws ProductException
- {
- conn=DbUtil.getConnection();
- int prodId=getProductId();
- int status=0;
- int idReturn=0;
- String query="INSERT INTO PRODUCTDB VALUES(?,?,?,?)";
- try{
- pstm=conn.prepareStatement(query);
- pstm.setInt(1,prodId);
- pstm.setString(2,prod.getProductName());
- pstm.setDouble(3,prod.getProductPrice());
- pstm.setString(4,prod.getProductDes());
- status=pstm.executeUpdate();
- if(status==1)
- idReturn = prodId;
- mylog.info("Data Inserted..."+prodId);
- }
- catch(SQLException e)
- {
- e.printStackTrace();
- throw new ProductException("Problem in Insert");
- }
- finally{
- try{
- pstm.close();
- conn.close();
- }
- catch(SQLException e)
- {
- e.printStackTrace();
- }
- }
- return idReturn;
- }
- @Override
- public List<Product> showall() throws ProductException
- {
- List<Product>myList=new ArrayList<Product>();
- conn=DbUtil.getConnection();
- String query="SELECT prod_id,prod_name,prod_price,prod_des FROM PRODUCTDB";
- try {
- pstm=conn.prepareStatement(query);
- ResultSet res=pstm.executeQuery();
- while(res.next())
- {
- Product pr=new Product();
- pr.setProductId(res.getInt("prod_id"));
- pr.setProductName(res.getString("prod_name"));
- pr.setProductPrice(res.getDouble("prod_price"));
- pr.setProductDes(res.getString("prod_des"));
- myList.add(pr);
- }
- }
- catch (SQLException e)
- {
- e.printStackTrace();
- throw new ProductException("Problem in show...");
- }
- finally
- {
- try{
- pstm.close();
- conn.close();
- }
- catch(SQLException e)
- {
- e.printStackTrace();
- }
- }
- return myList;
- }
- @Override
- public Product searchProduct(int prodID) throws ProductException
- {
- Product pSearch=null;
- try {
- conn=DbUtil.getConnection();
- String querythree="SELECT prod_id,prod_name,prod_price,prod_des FROM PRODUCTDB WHERE prod_id=?";
- pstm=conn.prepareStatement(querythree);
- pstm.setInt(1, prodID);
- ResultSet resOne=pstm.executeQuery();
- while(resOne.next())
- {
- pSearch=new Product();
- pSearch.setProductName(resOne.getString("prod_name"));
- pSearch.setProductPrice(resOne.getDouble("prod_price"));
- pSearch.setProductDes(resOne.getString("prod_des"));
- }
- }
- catch (ProductException | SQLException e)
- {
- e.printStackTrace();
- throw new ProductException("Problem in Search...");
- }
- finally
- {
- try{
- pstm.close();
- conn.close();
- }
- catch(SQLException e)
- {
- e.printStackTrace();
- }
- }
- return pSearch;
- }
- @Override
- public void removeProduct(int prodId)
- {
- }
- public static int getProductId() throws ProductException
- {
- int productId=0;
- try {
- conn=DbUtil.getConnection();
- String queryFive="select prod_id_seq.nextval from dual";
- pstm=conn.prepareStatement(queryFive);
- ResultSet resTwo=pstm.executeQuery();
- while(resTwo.next())
- {
- productId=resTwo.getInt(1);
- }
- } catch (ProductException | SQLException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- throw new ProductException("Problem in Getting id");
- }
- return productId;
- }
- }
- ===============================================================================================================================
- public class Product
- {
- //Attributes
- private int productId;
- private String productName;
- private double productPrice;
- private String productDes;
- //Getters And Setters
- public int getProductId() {
- return productId;
- }
- public void setProductId(int productId) {
- this.productId = productId;
- }
- public String getProductName() {
- return productName;
- }
- public void setProductName(String productName) {
- this.productName = productName;
- }
- public double getProductPrice() {
- return productPrice;
- }
- public void setProductPrice(double productPrice) {
- this.productPrice = productPrice;
- }
- public String getProductDes() {
- return productDes;
- }
- public void setProductDes(String productDes) {
- this.productDes = productDes;
- }
- //Constructors
- public Product()
- {
- // default Constructor
- }
- public Product(int productId, String productName, double productPrice,
- String productDes)
- {
- super();
- this.productId = productId;
- this.productName = productName;
- this.productPrice = productPrice;
- this.productDes = productDes;
- }
- @Override
- public String toString()
- {
- return "Product [productId=" + productId + ", productName="
- + productName + ", productPrice=" + productPrice
- + ", productDes=" + productDes + "]";
- }
- }
- ==============================================================================================================
- public class ProductException extends Exception
- {
- public ProductException()
- {
- super();
- }
- public ProductException(String msg)
- {
- super(msg);
- }
- }
- ================================================================================================================
- import static org.junit.Assert.*;
- import java.sql.Connection;
- import java.sql.PreparedStatement;
- import org.junit.After;
- import org.junit.Before;
- import org.junit.Test;
- import com.cg.pms.dao.ProductDaoImpl;
- import com.cg.pms.dto.Product;
- import com.cg.pms.exception.ProductException;
- public class ProductDaoTest
- {
- Product prod=null;
- ProductDaoImpl prodDao=null;
- @Before
- public void callBefore()
- {
- prod=new Product();
- prod.setProductName("aaaa");
- prod.setProductPrice(1111);
- prod.setProductDes("rrrr");
- prodDao=new ProductDaoImpl();
- }
- @Test
- public void myTestCase() throws ProductException
- {
- assertEquals(1019,prodDao.addProduct(prod));
- }
- @After
- public void callAfter()
- {
- }
- }
- ============================================================================================
- import java.io.FileInputStream;
- import java.io.IOException;
- import java.sql.Connection;
- import java.sql.DriverManager;
- import java.sql.SQLException;
- import java.util.Properties;
- import org.apache.log4j.Logger;
- import com.cg.pms.exception.ProductException;
- public class DbUtil
- {
- static Connection conn=null;
- private static final Logger mylogger=Logger.getLogger(DbUtil.class);
- public static Connection getConnection() throws ProductException
- {
- FileInputStream fileRead;
- try {
- fileRead = new FileInputStream("oracle.properties");
- Properties pros =new Properties();
- pros.load(fileRead); //Load Properties File
- String driver=pros.getProperty("oracle.driver");
- String url=pros.getProperty("oracle.url");
- String uname=pros.getProperty("oracle.username");
- String upass=pros.getProperty("oracle.password");
- //Load The Driver
- Class.forName(driver);
- //Making Connection
- conn=DriverManager.getConnection(url, uname, upass);
- mylogger.info("Connection Established...");
- }
- catch (IOException | ClassNotFoundException | SQLException e)
- {
- e.printStackTrace();
- mylogger.info("Connection not Established......."+e);
- throw new ProductException("Connection Not Established......");
- }
- return conn;
- }
- }
- ==================================================================================================
- log4j
- log4j.rootLogger=DEBUG, file
- log4j.appender.file=org.apache.log4j.RollingFileAppender
- log4j.appender.file.File=application.log
- log4j.appender.file.MaxFileSize=5MB
- log4j.appender.file.MaxBackupIndex=10
- log4j.appender.file.layout=org.apache.log4j.PatternLayout
- log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
- ================================================================================================
- oracle.driver=oracle.jdbc.driver.OracleDriver
- oracle.url=jdbc:oracle:thin:@localhost:1521:xe
- oracle.username=system
- oracle.password=Capgemini123
- ================================================================================================
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement