Advertisement
Guest User

Untitled

a guest
Nov 25th, 2015
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.66 KB | None | 0 0
  1. I PARCIJALNI ISPIT 2011/2012
  2. --------------------------------------------------
  3. // baza centrala(msssql) sa tabelom Artikli
  4. // baza Skladiste(mysql) sa tabelom Proizvodi
  5. // napisi metodu koja ce nadopuniti nedostajuce atribute u tabeli proizvodi u skladu sa tabelom Artikli
  6. --------------------------------------------------
  7.  
  8. Connection konekcija (String drivr, Strimg URL, String user, String pass){
  9.     class.forName(driver);
  10.     return.getConncection(url,user,pass);
  11. }
  12.  
  13. Connection konekcija_centrala = konekcija ("mssql", centralaurl, "admin", "admin");
  14. Connection konekcija_skladiste = konekcija ("mysql", skladisteurl, "admin", "admin");
  15.  
  16. DatabaseMetadata md_centrala = getMetaData (konekcija_centrala);
  17. ResultSet artikli_kolone = md_centrala.GetColums(null, "%", "Artikli", "%");
  18.  
  19. DatabaseMetadata md_skladiste = getMetaData (konekcija_skladiste);
  20. ResultSet proizvodi_kolone = md_skladiste.GetColums(null, "%", "Proizvodi", "%");
  21.  
  22. // prolazimo kroz obje tabele i gledamo da li kolona iz artikala postoji u proizvodima
  23.  
  24. while (artikli_kolone.next()){
  25.     bool nadjen = false;
  26.     while (proizvodi_kolone.next()){
  27.         if(artikli_kolone.GetString("COLUMN_NAME") == proizvodi_kolone.GetString("COLUMN_NAME")){
  28.             nadjeno = true;
  29.             }
  30.     }
  31.     if(nadjeno==false){
  32.     // ubacujemo kolonu koja nedostaje
  33.    
  34.     // prvo pokupimo podatke o trenutnoj koloni koju ubacujemo (naziv, tip, duzina, not null)
  35.    
  36.     String naziv = artikli_kolone.GetString("COLUMN_NAME");
  37.     String tip = artikli_kolone.GetString("COLUMN_TYPE");
  38.     String duzina = artikli_kolone.GetString("COLUMN_SYZE");
  39.     String not_null = "";
  40.     if (artikli_kolone.getBull("NULLABLE") == false){
  41.         not_null = "not null";
  42.         }
  43.    
  44.    
  45.     String UpitDodajKolonu = "ALTER TABLE proizvodi ADD COLUMN ? ? (?) ?";
  46.    
  47.     // prepared statement za bazu koju mijenjamo
  48.    
  49.     PreparedStatement st = konekcija_skladiste.PreparedStatement(UpitDodajKOlonu);
  50.         st.addString(1, naziv);
  51.         st.addString(2, tip);
  52.         st.addString(3, duzina);
  53.         st.addString(4, not_null);
  54.        
  55.         st.executeUpdate();
  56.        
  57.    
  58.     }
  59.    
  60. }
  61. ---------------------------------------------------------------------------------------
  62.  
  63. // II zadatak
  64. // Napisati metodu koja ce prikazati broj artikala iz baze Centrala i br proizvoda iz baze Skladiste
  65.  
  66. String upit1 = "SELECT COUNT (*) br_artikala FROM Artikli";
  67.  
  68. String upit2 = "SELECT COUNT (*) br_proizvoda FROM Proizvodi";
  69.  
  70. PreparedStatement ps1 = konekcija_centrala.PreparedStatement(upit1);
  71. PreparedStatement ps2 = konekcija_skladiste.PreparedStatement(upit2);
  72.  
  73. ResultSet rs1 = ps1.executeQuery();
  74. ResultSet rs2 = ps2.executeQuery();
  75.  
  76. while (rs1.next()){
  77.     printline(getString("br_artikala"));
  78. }
  79.  
  80. while (rs2.next()){
  81.     printline(getString("br_proizvoda"));
  82. }
  83.  
  84.  
  85. -------------------------------------------------------------------------------------------
  86.  
  87. // III Napisati metodu koja ce formirati ResultSet sa podacima iz tabele Artikli.z
  88. // Nakon toga je potrebno povecati vrijednost kolicine i stanja ako je:
  89. //              trenutno>10 i kolicina < 20
  90. // tada je      trenutno = kolicina-trenutno
  91.                 kolicina = trenutno +(kolicina*cijena)
  92.            
  93. ------------------------------------------------------------------------------------------
  94. // prvi dio zadatka; rs sa podacima iz tabele artikli
  95.  
  96. String upit = "SELECT * FROM Artikli";
  97.  
  98. PreparedStatement ps = konekcija_centrala.PreparedStatement(upit);
  99.  
  100. ResultSet rs = ps.executeQuery();
  101.  
  102. // drugi dio zadatka, povecavanje vrijednosti
  103.  
  104. while (rs.next()){
  105.     int trenutno = rs.getInt("trenutno_stanje");
  106.     int kolicina = rs.getInt("kolicina");
  107.     int cijena = rs.getInt ("cijena");
  108.    
  109.     if (trenutno > 10 && kolicina < 20){
  110.         trenutno = kolicina-trenutno;
  111.         kolicina = trenutno+kolicina*cijena;
  112.        
  113.         // upisujemo novu vrijednost u polje
  114.        
  115.         rs.setInt("trenutno_stanj", trenutno);
  116.         rs.setInt("kolicina", kolicina);
  117.     }
  118. }
  119. ---------------------------------------------------------------------------------------------
  120.  
  121. IV uzimajuci u obzir RS iz prethodnog zadatka, napisati metodu koja ce azurirati postojece podatke u tabli proizvodi. Podaci koji nedostaju treba dodati u tabelu
  122. ---------------------------------------------------------------------------------------------
  123.  
  124. String upit2 = "SELECT * FROM Proizvodi";
  125. PreparedStatement ps2 = konekcija_skladiste.PreparedStatement(upit2);
  126.  
  127. ResultSet rs2 = ps2.executeQuery();
  128.  
  129. String update = "UPDATE proizvodi
  130.                 SET trenutno_stanje =?,
  131.                 SET kolicina =?,
  132.                 WHERE sifra =?"
  133. PreparedStatment psUpdate = konekcija_skladiste.PreparedStatement(update);
  134.  
  135.  
  136. String insert = "INSERT INTO proizvodi (sifra, naziv, kolicina, cijena,trenutno_stanj);
  137.                 VALUES (?,?,?,?,?)"
  138.  
  139.                
  140. PreparedStatement psInsert = konekcija_skladiste.PreparedStatement(insert);
  141.  
  142. // gledamo da li postoji red u tabeli, ako postoji radimo update, ako ne postoji radimo insert
  143.  
  144. while (rs1.next()){
  145. bool nadjno = false;
  146.     while (rs2.next()){
  147.         if (rs1.getString("sifra") == rs2.getString("sifra")){
  148.         nadjeno = true;
  149.         }
  150.     }
  151.     if (nadjeno == true)
  152.         psUpdate.executeUpdate();
  153.     else
  154.         psInsert.executeUpdate();
  155. }
  156.  
  157. }
  158.  
  159.  
  160.  
  161. V nad bazom centrala definisane su tabele:
  162.  
  163. Artikli (id, naziv, kolicina, cijena, skladiste_id)
  164. Skladista (id, naziv, adresa, grad)
  165. Upotrebom LINQ prikazati sve podatke artikla sa gradom i adresom skladista kojem artikli pripadaju
  166. // normalni upit
  167. SELECT a.*, s.grad, s.adresa FROM Artikli a, Skladista s
  168. WHERE a.skladiste_id = s.id
  169.  
  170. -------------------------------------------------------------------------
  171.  
  172. // LINQ konekcija
  173.  
  174. NorthwindDataContext dataConcext = new NorthwindDataContext(Centrala);
  175.  
  176. // upit
  177.  
  178. var q = from a in dataContext.Artikli, s in dataContext.Skladista
  179. WHERE a.skladiste_id = s.id
  180. select new {
  181.         a.*, s.adresa, s.grad
  182. };
  183. v
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement