Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- I PARCIJALNI ISPIT 2011/2012
- --------------------------------------------------
- // baza centrala(msssql) sa tabelom Artikli
- // baza Skladiste(mysql) sa tabelom Proizvodi
- // napisi metodu koja ce nadopuniti nedostajuce atribute u tabeli proizvodi u skladu sa tabelom Artikli
- --------------------------------------------------
- Connection konekcija (String drivr, Strimg URL, String user, String pass){
- class.forName(driver);
- return.getConncection(url,user,pass);
- }
- Connection konekcija_centrala = konekcija ("mssql", centralaurl, "admin", "admin");
- Connection konekcija_skladiste = konekcija ("mysql", skladisteurl, "admin", "admin");
- DatabaseMetadata md_centrala = getMetaData (konekcija_centrala);
- ResultSet artikli_kolone = md_centrala.GetColums(null, "%", "Artikli", "%");
- DatabaseMetadata md_skladiste = getMetaData (konekcija_skladiste);
- ResultSet proizvodi_kolone = md_skladiste.GetColums(null, "%", "Proizvodi", "%");
- // prolazimo kroz obje tabele i gledamo da li kolona iz artikala postoji u proizvodima
- while (artikli_kolone.next()){
- bool nadjen = false;
- while (proizvodi_kolone.next()){
- if(artikli_kolone.GetString("COLUMN_NAME") == proizvodi_kolone.GetString("COLUMN_NAME")){
- nadjeno = true;
- }
- }
- if(nadjeno==false){
- // ubacujemo kolonu koja nedostaje
- // prvo pokupimo podatke o trenutnoj koloni koju ubacujemo (naziv, tip, duzina, not null)
- String naziv = artikli_kolone.GetString("COLUMN_NAME");
- String tip = artikli_kolone.GetString("COLUMN_TYPE");
- String duzina = artikli_kolone.GetString("COLUMN_SYZE");
- String not_null = "";
- if (artikli_kolone.getBull("NULLABLE") == false){
- not_null = "not null";
- }
- String UpitDodajKolonu = "ALTER TABLE proizvodi ADD COLUMN ? ? (?) ?";
- // prepared statement za bazu koju mijenjamo
- PreparedStatement st = konekcija_skladiste.PreparedStatement(UpitDodajKOlonu);
- st.addString(1, naziv);
- st.addString(2, tip);
- st.addString(3, duzina);
- st.addString(4, not_null);
- st.executeUpdate();
- }
- }
- ---------------------------------------------------------------------------------------
- // II zadatak
- // Napisati metodu koja ce prikazati broj artikala iz baze Centrala i br proizvoda iz baze Skladiste
- String upit1 = "SELECT COUNT (*) br_artikala FROM Artikli";
- String upit2 = "SELECT COUNT (*) br_proizvoda FROM Proizvodi";
- PreparedStatement ps1 = konekcija_centrala.PreparedStatement(upit1);
- PreparedStatement ps2 = konekcija_skladiste.PreparedStatement(upit2);
- ResultSet rs1 = ps1.executeQuery();
- ResultSet rs2 = ps2.executeQuery();
- while (rs1.next()){
- printline(getString("br_artikala"));
- }
- while (rs2.next()){
- printline(getString("br_proizvoda"));
- }
- -------------------------------------------------------------------------------------------
- // III Napisati metodu koja ce formirati ResultSet sa podacima iz tabele Artikli.z
- // Nakon toga je potrebno povecati vrijednost kolicine i stanja ako je:
- // trenutno>10 i kolicina < 20
- // tada je trenutno = kolicina-trenutno
- kolicina = trenutno +(kolicina*cijena)
- ------------------------------------------------------------------------------------------
- // prvi dio zadatka; rs sa podacima iz tabele artikli
- String upit = "SELECT * FROM Artikli";
- PreparedStatement ps = konekcija_centrala.PreparedStatement(upit);
- ResultSet rs = ps.executeQuery();
- // drugi dio zadatka, povecavanje vrijednosti
- while (rs.next()){
- int trenutno = rs.getInt("trenutno_stanje");
- int kolicina = rs.getInt("kolicina");
- int cijena = rs.getInt ("cijena");
- if (trenutno > 10 && kolicina < 20){
- trenutno = kolicina-trenutno;
- kolicina = trenutno+kolicina*cijena;
- // upisujemo novu vrijednost u polje
- rs.setInt("trenutno_stanj", trenutno);
- rs.setInt("kolicina", kolicina);
- }
- }
- ---------------------------------------------------------------------------------------------
- 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
- ---------------------------------------------------------------------------------------------
- String upit2 = "SELECT * FROM Proizvodi";
- PreparedStatement ps2 = konekcija_skladiste.PreparedStatement(upit2);
- ResultSet rs2 = ps2.executeQuery();
- String update = "UPDATE proizvodi
- SET trenutno_stanje =?,
- SET kolicina =?,
- WHERE sifra =?"
- PreparedStatment psUpdate = konekcija_skladiste.PreparedStatement(update);
- String insert = "INSERT INTO proizvodi (sifra, naziv, kolicina, cijena,trenutno_stanj);
- VALUES (?,?,?,?,?)"
- PreparedStatement psInsert = konekcija_skladiste.PreparedStatement(insert);
- // gledamo da li postoji red u tabeli, ako postoji radimo update, ako ne postoji radimo insert
- while (rs1.next()){
- bool nadjno = false;
- while (rs2.next()){
- if (rs1.getString("sifra") == rs2.getString("sifra")){
- nadjeno = true;
- }
- }
- if (nadjeno == true)
- psUpdate.executeUpdate();
- else
- psInsert.executeUpdate();
- }
- }
- V nad bazom centrala definisane su tabele:
- Artikli (id, naziv, kolicina, cijena, skladiste_id)
- Skladista (id, naziv, adresa, grad)
- Upotrebom LINQ prikazati sve podatke artikla sa gradom i adresom skladista kojem artikli pripadaju
- // normalni upit
- SELECT a.*, s.grad, s.adresa FROM Artikli a, Skladista s
- WHERE a.skladiste_id = s.id
- -------------------------------------------------------------------------
- // LINQ konekcija
- NorthwindDataContext dataConcext = new NorthwindDataContext(Centrala);
- // upit
- var q = from a in dataContext.Artikli, s in dataContext.Skladista
- WHERE a.skladiste_id = s.id
- select new {
- a.*, s.adresa, s.grad
- };
- v
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement