Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package Paket;
- import java.io.FileWriter;
- import java.sql.*;
- import java.util.ArrayList;
- import java.util.List;
- import java.util.Scanner;
- public class Upiti {
- static{
- try{
- Class.forName("com.ibm.db2.jcc.DB2Driver");
- }
- catch(Exception e){
- e.printStackTrace();
- }
- }
- public static void main(String[] args){
- try{
- Connection con = null;
- String url = "jdbc:db2://localhost:50001/vstud";
- con = DriverManager.getConnection(url, "student", "abcdef");
- /*za svaki ispitni rok ispisi broj prijavlenih ispita*/
- Scanner sc = new Scanner(System.in);
- int godina_roka;
- String oznaka_roka;
- godina_roka=sc.nextInt();//sa inputa godina_roka (ne treba skener)
- oznaka_roka=sc.next();//sa inputa oznaka roka
- String upit = "with polozeni (godina, oznaka, br_polozenih, ocene) as( " +
- "select irr.godina, irr.oznaka, count(*), sum(ocena) " +
- "from ispitni_rok irr join ispit ii on irr.godina=ii.godina_roka and irr.oznaka=ii.oznaka_roka "+
- "where status_prijave='o' and ocena>5 "+
- "group by irr.godina, irr.oznaka "+
- "), "+
- "diskvalifikovani(godina, oznaka, br_diskvalifikovanih) as ( "+
- "select irrr.godina, irrr.oznaka, count(*) "+
- "from ispitni_rok irrr join ispit iii on irrr.godina=iii.godina_roka and irrr.oznaka=iii.oznaka_roka "+
- "where status_prijave='d' "+
- "group by irrr.godina, irrr.oznaka "+
- "), "+
- "ponisteni(godina, oznaka, br_ponistenih) as ( "+
- "select irrrr.godina, irrrr.oznaka, count(*) "+
- "from ispitni_rok irrrr join ispit iiii on irrrr.godina=iiii.godina_roka and irrrr.oznaka=iiii.oznaka_roka "+
- "where status_prijave='x' "+
- "group by irrrr.godina, irrrr.oznaka "+
- ") "+
- "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 "+
- "from ispitni_rok ir join ispit "+
- "on ir.godina=ispit.godina_roka and ir.oznaka=ispit.oznaka_roka "+
- "join polozeni p on p.godina=ir.godina and p.oznaka=ir.oznaka "+
- "left join diskvalifikovani d on d.godina=ir.godina and d.oznaka=ir.oznaka "+
- "left join ponisteni po on po.oznaka=ir.oznaka and po.godina=ir.godina "+
- "where ispit.status_prijave='o' and ir.godina=? and ir.oznaka=? "+
- "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 ";
- PreparedStatement brIspita = con.prepareStatement(upit);
- brIspita.setInt(1, godina_roka);
- brIspita.setString(2, oznaka_roka);
- ResultSet br_prijavljenih = brIspita.executeQuery();
- if (!br_prijavljenih.next())
- System.out.println("prazan set");//ovde mora da se otvori prozor ako nemamo taj rok
- else{
- String naziv=br_prijavljenih.getString(1);
- Date pocetak_prijave = br_prijavljenih.getDate(2);
- Date kraj_prijave = br_prijavljenih.getDate(3);
- int br_prij = br_prijavljenih.getInt(4);
- int br_pol = br_prijavljenih.getInt(5);
- int br_disk = br_prijavljenih.getInt(7);
- int br_pon = br_prijavljenih.getInt(8);
- float prosek = br_prijavljenih.getFloat(6);
- ArrayList<String> niz = new ArrayList();
- niz.add("Naziv: " + naziv);
- niz.add("Pocetak prijave: " + pocetak_prijave.toString());
- niz.add("Kraj prijave: " + kraj_prijave.toString());
- niz.add("Broj studenata koji su prijavljivali ispite: " + br_prij);
- niz.add("Broj studenata koji su polozili ispite: " + br_pol);
- niz.add("Broj studenata koji su diskvalifikovani sa ispita: " + br_disk);
- niz.add("Broj studenata koji su ponistili ispite: " + br_prij);
- niz.add("Prosek studenata u ovom ispitnom roku: " + prosek);
- FileWriter fw = new FileWriter("ispitni_rok.txt");
- for(String pom:niz){
- fw.write(pom);
- fw.write("\n");
- }
- fw.close();
- for(String pom:niz){
- System.out.println(pom + '\n');
- }
- /*System.out.println("Naziv: " + br_prijavljenih.getString(1) +"\n" +
- "Pocetak prijave: " + br_prijavljenih.getString(2) +"\n" +
- "Kraj Prijave: " + br_prijavljenih.getString(3) +"\n" +
- "Broj prijavljenih ispita: " + br_prijavljenih.getInt(4) +"\n" +
- "Broj polozenih ispita: " + br_prijavljenih.getInt(5) +"\n" +
- "Broj diskvalifikovanih: " + br_prijavljenih.getInt(7) + "\n" +
- "Broj ponistenih: " + br_prijavljenih.getInt(8) +"\n" +
- "Prosecna ocena polozenih: " + br_prijavljenih.getFloat(6));
- System.out.println("\n");*/
- /*Deluje da je nepotrebno jer cemo samo odredjen red da izvlacimo*/
- /*while(br_prijavljenih.next()){
- System.out.println("Godina: " + br_prijavljenih.getString(1) + " Oznaka: " + br_prijavljenih.getString(2) + "Br: " + br_prijavljenih.getInt(3) );
- System.out.println("\n");
- }*/
- }
- br_prijavljenih.close();
- brIspita.close();
- con.close();
- }
- catch(SQLException se){
- se.printStackTrace();
- }
- catch(Exception e){
- e.printStackTrace();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement