Advertisement
Guest User

Java-JDBC projekat

a guest
May 21st, 2017
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.89 KB | None | 0 0
  1. package Paket;
  2. import java.sql.*;
  3. import java.util.Scanner;
  4. public class Upiti {
  5.  
  6.     static{
  7.         try{
  8.             Class.forName("com.ibm.db2.jcc.DB2Driver");
  9.         }
  10.         catch(Exception e){
  11.             e.printStackTrace();
  12.         }
  13.     }
  14.     public static void main(String[] args){
  15.         try{
  16.             Connection con = null;
  17.             String url = "jdbc:db2://localhost:50001/vstud";
  18.             con = DriverManager.getConnection(url, "student", "abcdef");
  19.             /*za svaki ispitni rok ispisi broj prijavlenih ispita*/
  20.             Scanner sc = new Scanner(System.in);
  21.             int godina_roka;
  22.             String oznaka_roka;
  23.             godina_roka=sc.nextInt();//sa inputa godina_roka (ne treba skener)
  24.             oznaka_roka=sc.next();//sa inputa oznaka roka
  25.             String upit =   "with polozeni (godina, oznaka, br_polozenih, ocene) as( " +
  26.                             "select irr.godina, irr.oznaka, count(*), sum(ocena) " +
  27.                             "from ispitni_rok irr join ispit ii on irr.godina=ii.godina_roka and irr.oznaka=ii.oznaka_roka "+
  28.                             "where status_prijave='o' and ocena>5 "+
  29.                             "group by irr.godina, irr.oznaka "+
  30.                             "), "+
  31.                             "diskvalifikovani(godina, oznaka, br_diskvalifikovanih) as ( "+
  32.                             "select irrr.godina, irrr.oznaka, count(*) "+
  33.                             "from ispitni_rok irrr join ispit iii on irrr.godina=iii.godina_roka and irrr.oznaka=iii.oznaka_roka "+
  34.                             "where status_prijave='d' "+
  35.                             "group by irrr.godina, irrr.oznaka "+
  36.                             "), "+
  37.                             "ponisteni(godina, oznaka, br_ponistenih) as ( "+
  38.                             "select irrrr.godina, irrrr.oznaka, count(*) "+
  39.                             "from ispitni_rok irrrr join ispit iiii on irrrr.godina=iiii.godina_roka and irrrr.oznaka=iiii.oznaka_roka "+
  40.                             "where status_prijave='x' "+
  41.                             "group by irrrr.godina, irrrr.oznaka "+
  42.                             ") "+
  43.             "select ir.naziv, ir.pocetak_prijavljivanja, ir.kraj_prijavljivanja, count(*) br_prijavljenih, p.br_polozenih, (p.ocene/p.br_polozenih)*1.0 prosek, coalesce(d.br_diskvalifikovanih, 0) diskvalifikovani, coalesce(po.br_ponistenih, 0) ponisteni "+
  44.             "from ispitni_rok ir join ispit "+
  45.             "on ir.godina=ispit.godina_roka and ir.oznaka=ispit.oznaka_roka "+
  46.             "join polozeni p on p.godina=ir.godina and p.oznaka=ir.oznaka "+
  47.             "left join diskvalifikovani d on d.godina=ir.godina and d.oznaka=ir.oznaka "+
  48.             "left join ponisteni po on po.oznaka=ir.oznaka and po.godina=ir.godina "+
  49.             "where ispit.status_prijave='o' and ir.godina=? and ir.oznaka=? "+
  50.             "group by ir.naziv, ir.pocetak_prijavljivanja, ir.kraj_prijavljivanja, p.br_polozenih, (p.ocene/p.br_polozenih)*1.0, d.br_diskvalifikovanih, po.br_ponistenih ";
  51.                    
  52.            
  53.             PreparedStatement brIspita = con.prepareStatement(upit);
  54.             brIspita.setInt(1, godina_roka);
  55.             brIspita.setString(2, oznaka_roka);
  56.             ResultSet br_prijavljenih = brIspita.executeQuery();
  57.             if (!br_prijavljenih.next())
  58.                 System.out.println("prazan set");//ovde mora da se otvori prozor ako nemamo taj rok
  59.             else{
  60.                 System.out.println("Naziv: " + br_prijavljenih.getString(1) +"\n" +
  61.                                     "Pocetak prijave: " + br_prijavljenih.getString(2) +"\n" +
  62.                                     "Kraj Prijave: " + br_prijavljenih.getString(3) +"\n" +
  63.                                     "Broj prijavljenih ispita: " + br_prijavljenih.getInt(4) +"\n" +
  64.                                     "Broj polozenih ispita: " + br_prijavljenih.getInt(5) +"\n" +
  65.                                     "Broj diskvalifikovanih: " + br_prijavljenih.getInt(7) + "\n" +
  66.                                     "Broj ponistenih: " + br_prijavljenih.getInt(8) +"\n" +
  67.                                     "Prosecna ocena polozenih: " + br_prijavljenih.getFloat(6));
  68.                 System.out.println("\n");
  69.                 /*Deluje da je nepotrebno jer cemo samo odredjen red da izvlacimo*/
  70.                 /*while(br_prijavljenih.next()){
  71.                    
  72.                     System.out.println("Godina: " + br_prijavljenih.getString(1) + " Oznaka: " + br_prijavljenih.getString(2) + "Br: " + br_prijavljenih.getInt(3) );
  73.                     System.out.println("\n");
  74.                 }*/
  75.                
  76.        
  77.             }
  78.             br_prijavljenih.close();
  79.             brIspita.close();
  80.             con.close();
  81.         }
  82.         catch(SQLException se){
  83.             se.printStackTrace();
  84.         }
  85.         catch(Exception e){
  86.             e.printStackTrace();
  87.         }
  88.        
  89.     }
  90.  
  91. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement