Advertisement
Guest User

Untitled

a guest
Jan 18th, 2017
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 13.62 KB | None | 0 0
  1. package com.cg.pms.ui;
  2.  
  3. import java.util.List;
  4. import java.util.Scanner;
  5.  
  6. import com.cg.pms.dto.Product;
  7. import com.cg.pms.exception.ProductException;
  8. import com.cg.pms.service.IProductService;
  9. import com.cg.pms.service.ProductServiceImpl;
  10.  
  11. public class MyTest {
  12.  
  13. public static void main(String[] args)
  14. {
  15. int choice=0;
  16. //Run Time Polymorphism
  17. IProductService prodservice=new ProductServiceImpl();
  18. do{
  19. printDetail();
  20. Scanner scr=new Scanner(System.in);
  21. System.out.println("Enter Your Choice:");
  22. choice=scr.nextInt();
  23.  
  24. switch(choice)
  25. {
  26. case 1://Add
  27. int msg=0;
  28. //System.out.println("Enter the product Id:");
  29. //int prodId=scr.nextInt();
  30. //Pattern
  31. String patt="[A-Z][a-z]{2,19}";
  32. //Asking user for input
  33. System.out.println("Enter the product name");
  34. String prodName=scr.next();
  35. try {
  36. ProductServiceImpl.validateName(prodName,patt);
  37. } catch (ProductException e1) {
  38. // TODO Auto-generated catch block
  39. //e1.printStackTrace();
  40. System.out.println(e1.getMessage());
  41. break;
  42. }
  43. System.out.println("Enter the Price:");
  44. double prodPrice=scr.nextDouble();
  45. System.out.println("Enter product Description");
  46. String prodDes=scr.next();
  47. Product prod=new Product();
  48. //prod.setProductId(prodId);
  49. prod.setProductName(prodName);
  50. prod.setProductPrice(prodPrice);
  51. prod.setProductDes(prodDes);
  52.  
  53. //Calling Service Layer.....
  54.  
  55. try {
  56. msg = prodservice.addProduct(prod);
  57. }
  58. catch (ProductException e)
  59. {
  60. e.printStackTrace();
  61. System.out.println(e.getMessage());
  62. }
  63. if(msg==0)
  64. {
  65. System.out.println("Data not Inserted");
  66. }
  67. else
  68. {
  69. System.out.println("Data Inserted Product Id is:"+msg);
  70. }
  71.  
  72.  
  73. break;
  74. case 2://showAll
  75. List<Product> myProd=null;
  76. try {
  77. myProd = prodservice.showall();
  78. } catch (ProductException e) {
  79. // TODO Auto-generated catch block
  80. e.printStackTrace();
  81. System.out.println(e.getMessage());
  82. }
  83. for (Product product : myProd)
  84. {
  85. System.out.println("Id is"+product.getProductId());
  86. System.out.println("Name is"+product.getProductName());
  87. System.out.println("Price is"+product.getProductPrice());
  88. System.out.println("Description is"+product.getProductDes());
  89.  
  90. }
  91. break;
  92. case 3://Search
  93. System.out.println("Enter Product Id.");
  94. int id=scr.nextInt();
  95. Product mySearchProd=null;
  96. try{
  97. mySearchProd=prodservice.searchProduct(id);
  98. }
  99. catch(ProductException e)
  100. {
  101. e.printStackTrace();
  102. System.out.println(e.getMessage());
  103. }
  104. System.out.println("Id is"+mySearchProd.getProductId());
  105. System.out.println("Name is"+mySearchProd.getProductName());
  106. System.out.println("Price is"+mySearchProd.getProductPrice());
  107. System.out.println("Description is"+mySearchProd.getProductDes());
  108.  
  109. break;
  110. case 4://Remove
  111. break;
  112. case 5://Exit
  113. System.exit(0);
  114. break;
  115. default:
  116. System.out.println("Wrong Input Please Try again");
  117. }
  118. }while(choice!=5);
  119. }
  120. public static void printDetail()
  121. {
  122. System.out.println("********************************");
  123. System.out.println("1.Add Product");
  124. System.out.println("2.Show Product");
  125. System.out.println("3.Search Product");
  126. System.out.println("4.Remove Product");
  127. System.out.println("5.Exit");
  128. System.out.println("*********************************");
  129. }
  130. }
  131. ===============================================================================================
  132. import java.util.List;
  133.  
  134. import com.cg.pms.dto.Product;
  135. import com.cg.pms.exception.ProductException;
  136.  
  137. public interface IProductService
  138. {
  139. public int addProduct(Product prod) throws ProductException;
  140. public List<Product>showall() throws ProductException;
  141. public Product searchProduct(int prodID) throws ProductException;
  142. public void removeProduct(int prodId) throws ProductException;
  143.  
  144. }
  145. ================================================================================================
  146. import java.util.List;
  147. import java.util.regex.Pattern;
  148.  
  149. import com.cg.pms.dao.IProductDao;
  150. import com.cg.pms.dao.ProductDaoImpl;
  151. import com.cg.pms.dto.Product;
  152. import com.cg.pms.exception.ProductException;
  153.  
  154. public class ProductServiceImpl implements IProductService
  155. {
  156. IProductDao prodDao=new ProductDaoImpl();
  157.  
  158. @Override
  159. public int addProduct(Product prod) throws ProductException
  160. {
  161. return prodDao.addProduct(prod);
  162. }
  163.  
  164. @Override
  165. public List<Product> showall() throws ProductException
  166. {
  167. return prodDao.showall();
  168. }
  169.  
  170. @Override
  171. public Product searchProduct(int prodID) throws ProductException
  172. {
  173. return prodDao.searchProduct(prodID);
  174. }
  175.  
  176. @Override
  177. public void removeProduct(int prodId)
  178. {
  179.  
  180.  
  181. }
  182. //Validations
  183. public static boolean validateName(String prodName,String prodPattern) throws ProductException
  184. {
  185. boolean validation=Pattern.matches(prodPattern,prodName);
  186. if(!validation){
  187. throw new ProductException("First Letter should be capital minimum 3 and maximum 20 characters");
  188. }
  189.  
  190. return validation;
  191.  
  192. }
  193.  
  194.  
  195. }
  196. =========================================================================================================
  197. import java.util.List;
  198.  
  199. import com.cg.pms.dto.Product;
  200. import com.cg.pms.exception.ProductException;
  201.  
  202. public interface IProductDao
  203. {
  204. public int addProduct(Product prod) throws ProductException ;
  205. public List<Product>showall() throws ProductException;
  206. public Product searchProduct(int prodID) throws ProductException;
  207. public void removeProduct(int prodId);
  208. }
  209. ============================================================================================================
  210. import java.sql.Connection;
  211. import java.sql.PreparedStatement;
  212. import java.sql.ResultSet;
  213. import java.sql.SQLException;
  214. import java.util.ArrayList;
  215. import java.util.List;
  216.  
  217. import org.apache.log4j.Logger;
  218.  
  219. import com.cg.pms.dto.Product;
  220. import com.cg.pms.exception.ProductException;
  221. import com.cg.pms.util.DbUtil;
  222.  
  223. public class ProductDaoImpl implements IProductDao
  224. {
  225. private static final Logger mylog=Logger.getLogger(ProductDaoImpl.class);
  226. static Connection conn=null;
  227. static PreparedStatement pstm=null;
  228. @Override
  229. public int addProduct(Product prod) throws ProductException
  230. {
  231. conn=DbUtil.getConnection();
  232. int prodId=getProductId();
  233. int status=0;
  234. int idReturn=0;
  235. String query="INSERT INTO PRODUCTDB VALUES(?,?,?,?)";
  236. try{
  237. pstm=conn.prepareStatement(query);
  238. pstm.setInt(1,prodId);
  239. pstm.setString(2,prod.getProductName());
  240. pstm.setDouble(3,prod.getProductPrice());
  241. pstm.setString(4,prod.getProductDes());
  242. status=pstm.executeUpdate();
  243. if(status==1)
  244. idReturn = prodId;
  245. mylog.info("Data Inserted..."+prodId);
  246. }
  247. catch(SQLException e)
  248. {
  249. e.printStackTrace();
  250. throw new ProductException("Problem in Insert");
  251. }
  252. finally{
  253. try{
  254. pstm.close();
  255. conn.close();
  256. }
  257. catch(SQLException e)
  258. {
  259. e.printStackTrace();
  260. }
  261. }
  262. return idReturn;
  263. }
  264.  
  265. @Override
  266. public List<Product> showall() throws ProductException
  267. {
  268. List<Product>myList=new ArrayList<Product>();
  269. conn=DbUtil.getConnection();
  270. String query="SELECT prod_id,prod_name,prod_price,prod_des FROM PRODUCTDB";
  271. try {
  272. pstm=conn.prepareStatement(query);
  273. ResultSet res=pstm.executeQuery();
  274. while(res.next())
  275. {
  276. Product pr=new Product();
  277. pr.setProductId(res.getInt("prod_id"));
  278. pr.setProductName(res.getString("prod_name"));
  279. pr.setProductPrice(res.getDouble("prod_price"));
  280. pr.setProductDes(res.getString("prod_des"));
  281.  
  282. myList.add(pr);
  283. }
  284. }
  285. catch (SQLException e)
  286. {
  287. e.printStackTrace();
  288. throw new ProductException("Problem in show...");
  289. }
  290. finally
  291. {
  292. try{
  293. pstm.close();
  294. conn.close();
  295. }
  296. catch(SQLException e)
  297. {
  298. e.printStackTrace();
  299. }
  300. }
  301. return myList;
  302. }
  303.  
  304. @Override
  305. public Product searchProduct(int prodID) throws ProductException
  306. {
  307. Product pSearch=null;
  308. try {
  309. conn=DbUtil.getConnection();
  310. String querythree="SELECT prod_id,prod_name,prod_price,prod_des FROM PRODUCTDB WHERE prod_id=?";
  311. pstm=conn.prepareStatement(querythree);
  312. pstm.setInt(1, prodID);
  313. ResultSet resOne=pstm.executeQuery();
  314. while(resOne.next())
  315. {
  316. pSearch=new Product();
  317. pSearch.setProductName(resOne.getString("prod_name"));
  318. pSearch.setProductPrice(resOne.getDouble("prod_price"));
  319. pSearch.setProductDes(resOne.getString("prod_des"));
  320. }
  321.  
  322. }
  323. catch (ProductException | SQLException e)
  324. {
  325. e.printStackTrace();
  326. throw new ProductException("Problem in Search...");
  327. }
  328. finally
  329. {
  330. try{
  331. pstm.close();
  332. conn.close();
  333. }
  334. catch(SQLException e)
  335. {
  336. e.printStackTrace();
  337. }
  338. }
  339. return pSearch;
  340. }
  341.  
  342. @Override
  343. public void removeProduct(int prodId)
  344. {
  345.  
  346.  
  347. }
  348. public static int getProductId() throws ProductException
  349. {
  350. int productId=0;
  351. try {
  352. conn=DbUtil.getConnection();
  353. String queryFive="select prod_id_seq.nextval from dual";
  354. pstm=conn.prepareStatement(queryFive);
  355. ResultSet resTwo=pstm.executeQuery();
  356. while(resTwo.next())
  357. {
  358. productId=resTwo.getInt(1);
  359.  
  360. }
  361. } catch (ProductException | SQLException e) {
  362. // TODO Auto-generated catch block
  363. e.printStackTrace();
  364. throw new ProductException("Problem in Getting id");
  365. }
  366. return productId;
  367. }
  368.  
  369. }
  370. ===============================================================================================================================
  371.  
  372. public class Product
  373. {
  374. //Attributes
  375. private int productId;
  376. private String productName;
  377. private double productPrice;
  378. private String productDes;
  379.  
  380. //Getters And Setters
  381. public int getProductId() {
  382. return productId;
  383. }
  384. public void setProductId(int productId) {
  385. this.productId = productId;
  386. }
  387. public String getProductName() {
  388. return productName;
  389. }
  390. public void setProductName(String productName) {
  391. this.productName = productName;
  392. }
  393. public double getProductPrice() {
  394. return productPrice;
  395. }
  396. public void setProductPrice(double productPrice) {
  397. this.productPrice = productPrice;
  398. }
  399. public String getProductDes() {
  400. return productDes;
  401. }
  402. public void setProductDes(String productDes) {
  403. this.productDes = productDes;
  404. }
  405.  
  406. //Constructors
  407. public Product()
  408. {
  409. // default Constructor
  410. }
  411. public Product(int productId, String productName, double productPrice,
  412. String productDes)
  413. {
  414. super();
  415. this.productId = productId;
  416. this.productName = productName;
  417. this.productPrice = productPrice;
  418. this.productDes = productDes;
  419. }
  420. @Override
  421. public String toString()
  422. {
  423. return "Product [productId=" + productId + ", productName="
  424. + productName + ", productPrice=" + productPrice
  425. + ", productDes=" + productDes + "]";
  426. }
  427.  
  428. }
  429. ==============================================================================================================
  430. public class ProductException extends Exception
  431. {
  432. public ProductException()
  433. {
  434. super();
  435. }
  436. public ProductException(String msg)
  437. {
  438. super(msg);
  439. }
  440.  
  441. }
  442. ================================================================================================================
  443. import static org.junit.Assert.*;
  444.  
  445. import java.sql.Connection;
  446. import java.sql.PreparedStatement;
  447.  
  448. import org.junit.After;
  449. import org.junit.Before;
  450. import org.junit.Test;
  451.  
  452. import com.cg.pms.dao.ProductDaoImpl;
  453. import com.cg.pms.dto.Product;
  454. import com.cg.pms.exception.ProductException;
  455.  
  456. public class ProductDaoTest
  457. {
  458.  
  459. Product prod=null;
  460. ProductDaoImpl prodDao=null;
  461. @Before
  462. public void callBefore()
  463. {
  464. prod=new Product();
  465. prod.setProductName("aaaa");
  466. prod.setProductPrice(1111);
  467. prod.setProductDes("rrrr");
  468. prodDao=new ProductDaoImpl();
  469. }
  470. @Test
  471. public void myTestCase() throws ProductException
  472. {
  473. assertEquals(1019,prodDao.addProduct(prod));
  474. }
  475. @After
  476. public void callAfter()
  477. {
  478.  
  479. }
  480.  
  481. }
  482. ============================================================================================
  483. import java.io.FileInputStream;
  484. import java.io.IOException;
  485. import java.sql.Connection;
  486. import java.sql.DriverManager;
  487. import java.sql.SQLException;
  488. import java.util.Properties;
  489.  
  490. import org.apache.log4j.Logger;
  491.  
  492. import com.cg.pms.exception.ProductException;
  493.  
  494. public class DbUtil
  495. {
  496. static Connection conn=null;
  497. private static final Logger mylogger=Logger.getLogger(DbUtil.class);
  498. public static Connection getConnection() throws ProductException
  499. {
  500. FileInputStream fileRead;
  501. try {
  502. fileRead = new FileInputStream("oracle.properties");
  503. Properties pros =new Properties();
  504. pros.load(fileRead); //Load Properties File
  505.  
  506. String driver=pros.getProperty("oracle.driver");
  507. String url=pros.getProperty("oracle.url");
  508. String uname=pros.getProperty("oracle.username");
  509. String upass=pros.getProperty("oracle.password");
  510.  
  511. //Load The Driver
  512. Class.forName(driver);
  513. //Making Connection
  514. conn=DriverManager.getConnection(url, uname, upass);
  515. mylogger.info("Connection Established...");
  516. }
  517. catch (IOException | ClassNotFoundException | SQLException e)
  518. {
  519. e.printStackTrace();
  520. mylogger.info("Connection not Established......."+e);
  521. throw new ProductException("Connection Not Established......");
  522.  
  523. }
  524.  
  525.  
  526. return conn;
  527. }
  528. }
  529. ==================================================================================================
  530. log4j
  531.  
  532. log4j.rootLogger=DEBUG, file
  533.  
  534. log4j.appender.file=org.apache.log4j.RollingFileAppender
  535. log4j.appender.file.File=application.log
  536. log4j.appender.file.MaxFileSize=5MB
  537. log4j.appender.file.MaxBackupIndex=10
  538. log4j.appender.file.layout=org.apache.log4j.PatternLayout
  539. log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
  540. ================================================================================================
  541. oracle.driver=oracle.jdbc.driver.OracleDriver
  542. oracle.url=jdbc:oracle:thin:@localhost:1521:xe
  543. oracle.username=system
  544. oracle.password=Capgemini123
  545. ================================================================================================
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement