Advertisement
Guest User

Java JDBC Datoteka

a guest
May 24th, 2017
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.13 KB | None | 0 0
  1. package Paket;
  2. import java.io.FileWriter;
  3. import java.sql.*;
  4. import java.util.ArrayList;
  5. import java.util.List;
  6. import java.util.Scanner;
  7. public class Upiti {
  8.  
  9. static{
  10. try{
  11. Class.forName("com.ibm.db2.jcc.DB2Driver");
  12. }
  13. catch(Exception e){
  14. e.printStackTrace();
  15. }
  16. }
  17. public static void main(String[] args){
  18. try{
  19. Connection con = null;
  20. String url = "jdbc:db2://localhost:50001/vstud";
  21. con = DriverManager.getConnection(url, "student", "abcdef");
  22. /*za svaki ispitni rok ispisi broj prijavlenih ispita*/
  23. Scanner sc = new Scanner(System.in);
  24. int godina_roka;
  25. String oznaka_roka;
  26. godina_roka=sc.nextInt();//sa inputa godina_roka (ne treba skener)
  27. oznaka_roka=sc.next();//sa inputa oznaka roka
  28. String upit = "with polozeni (godina, oznaka, br_polozenih, ocene) as( " +
  29. "select irr.godina, irr.oznaka, count(*), sum(ocena) " +
  30. "from ispitni_rok irr join ispit ii on irr.godina=ii.godina_roka and irr.oznaka=ii.oznaka_roka "+
  31. "where status_prijave='o' and ocena>5 "+
  32. "group by irr.godina, irr.oznaka "+
  33. "), "+
  34. "diskvalifikovani(godina, oznaka, br_diskvalifikovanih) as ( "+
  35. "select irrr.godina, irrr.oznaka, count(*) "+
  36. "from ispitni_rok irrr join ispit iii on irrr.godina=iii.godina_roka and irrr.oznaka=iii.oznaka_roka "+
  37. "where status_prijave='d' "+
  38. "group by irrr.godina, irrr.oznaka "+
  39. "), "+
  40. "ponisteni(godina, oznaka, br_ponistenih) as ( "+
  41. "select irrrr.godina, irrrr.oznaka, count(*) "+
  42. "from ispitni_rok irrrr join ispit iiii on irrrr.godina=iiii.godina_roka and irrrr.oznaka=iiii.oznaka_roka "+
  43. "where status_prijave='x' "+
  44. "group by irrrr.godina, irrrr.oznaka "+
  45. ") "+
  46. "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 "+
  47. "from ispitni_rok ir join ispit "+
  48. "on ir.godina=ispit.godina_roka and ir.oznaka=ispit.oznaka_roka "+
  49. "join polozeni p on p.godina=ir.godina and p.oznaka=ir.oznaka "+
  50. "left join diskvalifikovani d on d.godina=ir.godina and d.oznaka=ir.oznaka "+
  51. "left join ponisteni po on po.oznaka=ir.oznaka and po.godina=ir.godina "+
  52. "where ispit.status_prijave='o' and ir.godina=? and ir.oznaka=? "+
  53. "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 ";
  54.  
  55.  
  56. PreparedStatement brIspita = con.prepareStatement(upit);
  57. brIspita.setInt(1, godina_roka);
  58. brIspita.setString(2, oznaka_roka);
  59. ResultSet br_prijavljenih = brIspita.executeQuery();
  60. if (!br_prijavljenih.next())
  61. System.out.println("prazan set");//ovde mora da se otvori prozor ako nemamo taj rok
  62. else{
  63. String naziv=br_prijavljenih.getString(1);
  64. Date pocetak_prijave = br_prijavljenih.getDate(2);
  65. Date kraj_prijave = br_prijavljenih.getDate(3);
  66. int br_prij = br_prijavljenih.getInt(4);
  67. int br_pol = br_prijavljenih.getInt(5);
  68. int br_disk = br_prijavljenih.getInt(7);
  69. int br_pon = br_prijavljenih.getInt(8);
  70. float prosek = br_prijavljenih.getFloat(6);
  71.  
  72. ArrayList<String> niz = new ArrayList();
  73. niz.add("Naziv: " + naziv);
  74. niz.add("Pocetak prijave: " + pocetak_prijave.toString());
  75. niz.add("Kraj prijave: " + kraj_prijave.toString());
  76. niz.add("Broj studenata koji su prijavljivali ispite: " + br_prij);
  77. niz.add("Broj studenata koji su polozili ispite: " + br_pol);
  78. niz.add("Broj studenata koji su diskvalifikovani sa ispita: " + br_disk);
  79. niz.add("Broj studenata koji su ponistili ispite: " + br_prij);
  80. niz.add("Prosek studenata u ovom ispitnom roku: " + prosek);
  81.  
  82. FileWriter fw = new FileWriter("ispitni_rok.txt");
  83. for(String pom:niz){
  84. fw.write(pom);
  85. fw.write("\n");
  86. }
  87. fw.close();
  88. for(String pom:niz){
  89. System.out.println(pom + '\n');
  90. }
  91. /*System.out.println("Naziv: " + br_prijavljenih.getString(1) +"\n" +
  92. "Pocetak prijave: " + br_prijavljenih.getString(2) +"\n" +
  93. "Kraj Prijave: " + br_prijavljenih.getString(3) +"\n" +
  94. "Broj prijavljenih ispita: " + br_prijavljenih.getInt(4) +"\n" +
  95. "Broj polozenih ispita: " + br_prijavljenih.getInt(5) +"\n" +
  96. "Broj diskvalifikovanih: " + br_prijavljenih.getInt(7) + "\n" +
  97. "Broj ponistenih: " + br_prijavljenih.getInt(8) +"\n" +
  98. "Prosecna ocena polozenih: " + br_prijavljenih.getFloat(6));
  99. System.out.println("\n");*/
  100. /*Deluje da je nepotrebno jer cemo samo odredjen red da izvlacimo*/
  101. /*while(br_prijavljenih.next()){
  102.  
  103. System.out.println("Godina: " + br_prijavljenih.getString(1) + " Oznaka: " + br_prijavljenih.getString(2) + "Br: " + br_prijavljenih.getInt(3) );
  104. System.out.println("\n");
  105. }*/
  106.  
  107.  
  108. }
  109. br_prijavljenih.close();
  110. brIspita.close();
  111. con.close();
  112. }
  113. catch(SQLException se){
  114. se.printStackTrace();
  115. }
  116. catch(Exception e){
  117. e.printStackTrace();
  118. }
  119.  
  120. }
  121.  
  122. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement