Advertisement
Guest User

Untitled

a guest
Apr 23rd, 2017
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 11.67 KB | None | 0 0
  1. package opg1;
  2.  
  3. import java.sql.Connection;
  4. import java.sql.Date;
  5. import java.sql.DriverManager;
  6. import java.sql.PreparedStatement;
  7. import java.sql.ResultSet;
  8. import java.sql.ResultSetMetaData;
  9. import java.sql.SQLException;
  10. import java.util.ArrayList;
  11. import java.util.Scanner;
  12.  
  13. public class Main {
  14.  
  15.     static PreparedStatement new_andetProduct;
  16.     static PreparedStatement new_toej;
  17.     static PreparedStatement new_drink;
  18.     static PreparedStatement new_container;
  19.  
  20.     static PreparedStatement seProduktAndet;
  21.     static PreparedStatement seProduktToej;
  22.     static PreparedStatement seProduktDrink;
  23.     static PreparedStatement seProduktContainer;
  24.     static PreparedStatement sePrisliste;
  25.     static PreparedStatement seKundeListe;
  26.     static ArrayList<PreparedStatement> seArr;
  27.     static ArrayList<String> seArrString;
  28.  
  29.     static PreparedStatement seSalg;
  30.  
  31.     static PreparedStatement get_samlet_salg;
  32.     static PreparedStatement get_samlet_salg_drink;
  33.     static PreparedStatement get_samlet_salg_andet;
  34.     static PreparedStatement get_samlet_salg_clothes;
  35.  
  36.     static Connection minConnection = null;
  37.  
  38.     static Scanner reader;
  39.  
  40.     public static void main(String[] args) {
  41.  
  42.         ///////////////////////////////////////////////////////////////////////// CONNECT
  43.         reader = new Scanner(System.in); // keyboard input
  44.  
  45.         System.out.println(
  46.                 "input connection string. Hvis input er mindre en 10 char lang bruger programmet denne default string: ");
  47.         String connectionString = "jdbc:sqlserver://LAPTOP-4MGF8SQ7\\HAPS;databaseName=master;user=sa;password=password;";
  48.         System.out.println("\n " + connectionString + " \ninput:");
  49.  
  50.         String input = reader.next();
  51.         if (input.length() >= 10) {
  52.             connectionString = input;
  53.         }
  54.  
  55.         try {
  56.             minConnection = DriverManager.getConnection(connectionString);
  57.             System.out.println("connection succes!");
  58.         } catch (Exception e) {
  59.             System.out.println("kunne ikke connecte til server - fejl:  " + e.getMessage());
  60.             System.exit(0);
  61.         }
  62.  
  63.         ///////////////////////////////////////////////////////////////////////// MENU
  64.  
  65.         init();
  66.  
  67.         Boolean done = false;
  68.         int inputNum = 0;
  69.  
  70.         while (!done) {
  71.             System.out.println("Vælg et tal, indtast og tryk enter:\n");
  72.             System.out.println("0: nyt andet produkt");
  73.             System.out.println("1: nyt drink");
  74.             System.out.println("2: nyt container");
  75.             System.out.println("3: nyt tøj\n");
  76.             System.out.println("4: se andetprodukter, tøj, drinks, container, prisliste og customer table");
  77.  
  78.             System.out.println("5: se salg tabel \n");
  79.             System.out.println("6: se salg ekslusiv pant for dato og/eller produkt katagori\n");
  80.  
  81.             System.out.println("input:");
  82.             inputNum = reader.nextInt();
  83.  
  84.             // Skip the newline
  85.             reader.nextLine();
  86.  
  87.             System.out.println("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
  88.  
  89.             if (inputNum >= 0 & inputNum <= 3) {
  90.                 lavProdukt(inputNum);
  91.             } else if (inputNum == 4) {
  92.                 seeTables();
  93.             } else if (inputNum == 5) {
  94.                 seeSalg();
  95.             } else if (inputNum == 6) {
  96.                 seeTotalSalg();
  97.             } else {
  98.                 System.out.println("KUNNE IKKE FORSTÅ TAL ");
  99.             }
  100.  
  101.         }
  102.     }
  103.  
  104.     public static void init() {
  105.  
  106.         // TODO put tøj ind for at få fler produktgrupper
  107.  
  108.         try {
  109.             new_andetProduct = minConnection.prepareStatement("exec nyt_PRODUCT ?,?,?,?");
  110.             new_drink = minConnection.prepareStatement("exec nyt_DRINK ?,?,?,?,?,?");
  111.             new_container = minConnection.prepareStatement("exec nyt_CONTAINER ?,?,?");
  112.             new_toej = minConnection.prepareStatement("exec nyt_CLOTHING ?,?,?,?,?");
  113.  
  114.             seProduktAndet = minConnection.prepareStatement("exec get_PRODUCT");
  115.             seProduktToej = minConnection.prepareStatement("exec get_CLOTHING");
  116.             seProduktDrink = minConnection.prepareStatement("exec get_DRINK");
  117.             seProduktContainer = minConnection.prepareStatement("exec get_CONTAINER");
  118.             sePrisliste = minConnection.prepareStatement("exec get_PRISLISTE");
  119.             seKundeListe = minConnection.prepareStatement("exec get_KUNDELISTE");
  120.  
  121.             seSalg = minConnection.prepareStatement("exec get_SALG");
  122.  
  123.             get_samlet_salg = minConnection.prepareStatement("exec get_samlet_salg ?");
  124.             get_samlet_salg_drink = minConnection.prepareStatement("exec get_samlet_salg_drink ?");
  125.             get_samlet_salg_andet = minConnection.prepareStatement("exec get_samlet_salg_andet ?");
  126.             get_samlet_salg_clothes = minConnection.prepareStatement("exec get_samlet_salg_clothes ?");
  127.  
  128.         } catch (SQLException e) {
  129.             // TODO Auto-generated catch block
  130.             System.out.println("error i init. Kunne ikke initialisere preparedstatement " + e.toString());
  131.             e.printStackTrace();
  132.         }
  133.  
  134.         seArr = new ArrayList<PreparedStatement>();
  135.         seArrString = new ArrayList<String>();
  136.  
  137.         seArr.add(seProduktAndet);
  138.         seArr.add(seProduktToej);
  139.         seArr.add(seProduktDrink);
  140.         seArr.add(seProduktContainer);
  141.         seArr.add(sePrisliste);
  142.         seArr.add(seKundeListe);
  143.  
  144.         seArrString.add("Andre produkter (Produktkatagori): ");
  145.         seArrString.add("Toej (Produktkatagori):");
  146.         seArrString.add("Drink produkte (Produktkatagori): ");
  147.         seArrString.add("Container for drinks: ");
  148.         seArrString.add("Prisliste: ");
  149.         seArrString.add("kundeliste: ");
  150.  
  151.         /*
  152.          * delete_andetProduct=; opdater_andetProduct=;
  153.          *
  154.          * seProduktDrink=; seProduktAndet=;
  155.          *
  156.          * seSamletDatoSalg=; seSamletProduktGruppeDatoSalg=;
  157.          */
  158.  
  159.     }
  160.  
  161.     /**
  162.      * Prints out tables: Produktandet ProduktDrink Containers Prisliste
  163.      * KundeListe
  164.      */
  165.     public static void seeTables() {
  166.  
  167.         try {
  168.  
  169.             for (int i = 0; i < seArr.size(); i++) {
  170.                 System.out.println(
  171.                         "\n\n##############################################################################\n\n");
  172.                 System.out.println(seArrString.get(i) + "\n");
  173.                 PreparedStatement stt = seArr.get(i);
  174.                 System.out.println("--------------------------------------------------------------------------------");
  175.                 stt.execute();
  176.                 ResultSet res = stt.getResultSet();
  177.                 ResultSetMetaData rsmd = res.getMetaData();
  178.                 String format = "%-35s";
  179.  
  180.                 for (int x = 1; x <= rsmd.getColumnCount(); x++) {
  181.                     System.out.printf(format, rsmd.getColumnName(x));
  182.                 }
  183.                 System.out.printf("%s", "\n");
  184.                 while (res.next()) {
  185.                     for (int x = 1; x <= rsmd.getColumnCount(); x++) {
  186.                         System.out.printf(format, res.getString(x));
  187.                     }
  188.                     System.out.println("");
  189.                 }
  190.             }
  191.  
  192.         } catch (Exception e) {
  193.             System.out.println("fejl " + e.toString());
  194.         }
  195.  
  196.     }
  197.  
  198.     public static void lavProdukt(int num) {
  199.  
  200.         ArrayList<String> info = new ArrayList<String>();
  201.         info.add("nyt andet produkt\n" + "argumenter: barpris double,storepris double,otherpris double,navnstr"
  202.                 + "\n eksempel:  53.50,50,0,sparegris");
  203.         info.add("nyt drink\n"
  204.                 + "argumenter: barpris double,storepris double,otherpris double,navnstr,percent double, int containerfremmednøgle"
  205.                 + "\n eksempel:  40,0,0,alm øl,4.7,1");
  206.         info.add("nyt container\n" + "argumenter: navnstr,double liter, double pant" + "\n eksempel:  ølhorn,0.86,10");
  207.         info.add("nyt toej\n" + "argumenter: barpris double,storepris double,otherpris double,navnstr,størrelsestring"
  208.                 + "\n eksempel:  150,150,150,tshirt m.logo,XL");
  209.  
  210.         System.out.println("input argumenter for det nye produkt og seperer hver argument med et komma uden mellemrum");
  211.         System.out.println(info.get(num));
  212.  
  213.         String[] a = inputArgumenter();
  214.         System.out.println("numre af argumenter: " + a.length);
  215.         try {
  216.             if (num == 0) { // andet product
  217.  
  218.                 new_andetProduct.setDouble(1, Double.parseDouble(a[0]));
  219.                 new_andetProduct.setDouble(2, Double.parseDouble(a[1]));
  220.                 new_andetProduct.setDouble(3, Double.parseDouble(a[2]));
  221.                 new_andetProduct.setString(4, a[3]);
  222.                 new_andetProduct.execute();
  223.             }
  224.             if (num == 1) { // drink
  225.                 new_drink.setDouble(1, Double.parseDouble(a[0]));
  226.                 new_drink.setDouble(2, Double.parseDouble(a[1]));
  227.                 new_drink.setDouble(3, Double.parseDouble(a[2]));
  228.                 new_drink.setString(4, a[3]);
  229.                 new_drink.setDouble(5, Double.parseDouble(a[4]));
  230.                 new_drink.setInt(6, Integer.parseInt(a[5]));
  231.                 new_drink.execute();
  232.             }
  233.             if (num == 2) { // container
  234.                 new_container.setString(1, a[0]);
  235.                 new_container.setDouble(2, Double.parseDouble(a[1]));
  236.                 new_container.setDouble(3, Double.parseDouble(a[2]));
  237.                 new_container.execute();
  238.             }
  239.             if (num == 3) { // tøj
  240.                 new_toej.setDouble(1, Double.parseDouble(a[0]));
  241.                 new_toej.setDouble(2, Double.parseDouble(a[1]));
  242.                 new_toej.setDouble(3, Double.parseDouble(a[2]));
  243.                 new_toej.setString(4, a[3]);
  244.                 new_toej.setString(5, a[4]);
  245.                 new_toej.execute();
  246.             }
  247.         } catch (NumberFormatException | SQLException e) {
  248.             // TODO Auto-generated catch block
  249.             e.printStackTrace();
  250.         }
  251.  
  252.     }
  253.  
  254.     public static String[] inputArgumenter() {
  255.         System.out.println("input:");
  256.         String input = reader.nextLine();
  257.         return input.split(",");
  258.     }
  259.  
  260.     public static void seeSalg() {
  261.         System.out.println("\n--------------------------------------------------------------------------------");
  262.         System.out.println(
  263.                 "\nSALDSDATO ER FORKERT HER!!\n DET MÅ VÆRE EN BUG http://stackoverflow.com/questions/11296606/dates-consistently-two-days-off ");
  264.         try {
  265.             seSalg.execute();
  266.             ResultSet res = seSalg.getResultSet();
  267.             ResultSetMetaData rsmd = res.getMetaData();
  268.             String format = "%-35s";
  269.  
  270.             for (int x = 1; x <= rsmd.getColumnCount(); x++) {
  271.                 System.out.printf(format, rsmd.getColumnName(x));
  272.             }
  273.             System.out.printf("%s", "\n");
  274.             while (res.next()) {
  275.  
  276.                 System.out.printf(format, res.getString(1));
  277.                 System.out.printf(format, res.getDate(2)); // SALGSDATO ER
  278.                                                             // FORKERT HER
  279.                 System.out.printf(format, res.getString(3)); // DET MÅ VÆRE EN
  280.                                                                 // BUG
  281.                                                                 // http://stackoverflow.com/questions/11296606/dates-consistently-two-days-off
  282.                 System.out.printf(format, res.getString(4));
  283.                 System.out.printf(format, res.getString(5));
  284.                 System.out.printf(format, res.getString(6));
  285.                 System.out.printf(format, res.getString(7));
  286.                 System.out.printf(format, res.getString(8));
  287.                 System.out.printf(format, res.getString(9));
  288.                 System.out.printf(format, res.getString(10));
  289.                 System.out.printf(format, res.getString(11));
  290.                 System.out.println("");
  291.             }
  292.         } catch (SQLException e) {
  293.             // TODO Auto-generated catch block
  294.             e.printStackTrace();
  295.         }
  296.     }
  297.  
  298.     public static void seeTotalSalg() {
  299.         System.out.println("\n indtast dato \n eksempel: '2016-12-24'  (uden quotationmarks)");
  300.  
  301.         System.out.println("input:");
  302.         String input = reader.nextLine();
  303.  
  304.         try {
  305.             Date d = Date.valueOf(input);
  306.             System.out.println(d.toString());
  307.  
  308.             get_samlet_salg_drink.setDate(1, d);
  309.             get_samlet_salg_andet.setDate(1, d);
  310.             get_samlet_salg_clothes.setDate(1, d);
  311.  
  312.             get_samlet_salg.setDate(1, d);
  313.             get_samlet_salg.execute();
  314.             ResultSet res1 = get_samlet_salg.getResultSet();
  315.             res1.next();
  316.             System.out.print("Samlet salg for dato: ");
  317.             System.out.println(res1.getDouble(1));
  318.  
  319.             get_samlet_salg_drink.execute();
  320.             ResultSet res2 = get_samlet_salg_drink.getResultSet();
  321.  
  322.             get_samlet_salg_andet.execute();
  323.             ResultSet res3 = get_samlet_salg_andet.getResultSet();
  324.  
  325.             get_samlet_salg_clothes.execute();
  326.             ResultSet res4 = get_samlet_salg_clothes.getResultSet();
  327.  
  328.             res2.next();
  329.             res3.next();
  330.             res4.next();
  331.             System.out.print("Samlet salg for dato: ");
  332.             System.out.println(res1.getDouble(1));
  333.             System.out.print("Samlet salg indenfor drink for dato: ");
  334.             System.out.println(res2.getDouble(1));
  335.             System.out.print("Samlet salg indenfor andet for dato: ");
  336.             System.out.println(res3.getDouble(1));
  337.             System.out.print("Samlet salg inden for clothes for dato: ");
  338.             System.out.println(res4.getDouble(1));
  339.  
  340.         } catch (SQLException e) {
  341.             // TODO Auto-generated catch block
  342.             e.printStackTrace();
  343.         }
  344.     }
  345.  
  346. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement