-
-
Save sandeepmchouhan111293/2c732d17911d990811c42ac76f8b2c01 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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