Skip to content

Instantly share code, notes, and snippets.

@sandeepmchouhan111293
Created January 18, 2017 13:55
Show Gist options
  • Save sandeepmchouhan111293/2c732d17911d990811c42ac76f8b2c01 to your computer and use it in GitHub Desktop.
Save sandeepmchouhan111293/2c732d17911d990811c42ac76f8b2c01 to your computer and use it in GitHub Desktop.
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
================================================================================================
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment