JDBC/Naloga: Vstavljanje podatkov v tabelo/Rešitev

Iz MaFiRaWiki

Ta članek ali del članka je v delu. Veseli bomo, če ga boste dopolnili in popravili.

Kaj pomeni to opozorilo?

Rešitev naloge:

  1. import java.sql.*;
  2.  
  3. public class TestJDBC3 {
  4. public static void main ( String args[] ) {
  5. try {
  6. // naložimo JDBC in ustrezen gonilnik
  7. Class.forName("org.apache.derby.jdbc.ClientDriver").newInstance();
  8. // ko smo že naložili gonilnik in ga je naš sistem zaznal, naredimo povezavo
  9. // url mora biti sestavljen iz imena pod-protokola in s parametri pod-protokola
  10. String url = "jdbc:derby://localhost:1527/DBTest";
  11. // upIme in geslo je moje uporabniško ime in geslo, katero uporabljam pri
  12. // povezavi do moje DBMS ( v mojem primeru je to povezava s programom NetBeans IDE,
  13. // kjer sem si ustvarila bazo )
  14. Connection povezava = DriverManager.getConnection(url, "klaudija", "klaudija");
  15. // izvedemo stavek
  16. Statement stavek = povezava.createStatement();
  17. // vstavljamo podatke v tabelo EVIDENCA vrstico za vrstico, kot imamo opisano
  18. // pri naši tabeli
  19. stavek.executeUpdate("INSERT INTO EVIDENCA " +
  20. "VALUES ('Janez', 'Novak', 13450012, 2000)");
  21. stavek.executeUpdate("INSERT INTO EVIDENCA " +
  22. "VALUES ('Marko', 'Horvat', 13431250, 1998)");
  23. stavek.executeUpdate("INSERT INTO EVIDENCA " +
  24. "VALUES ('Anita', 'Kovač', 13462391, 2001)");
  25. stavek.executeUpdate("INSERT INTO EVIDENCA " +
  26. "VALUES ('Peter', 'Golob', 13450001, 2000)");
  27. stavek.executeUpdate("INSERT INTO EVIDENCA " +
  28. "VALUES ('Irena', 'Krajnc', 13478355, 2002)");
  29. // uporabimo metodo executeQuery, ki nam izpiše vse podatke, ki se nahajajo
  30. // v tabeli EVIDENCA
  31. // ko vstavljamo podatke v tabelo, nam ni potrebno še povpraševati po podatkih,
  32. // vendar sem to naredila, da sem se prepričala, če sem pravilno naredila tabelo
  33. ResultSet rs = stavek.executeQuery("SELECT * FROM EVIDENCA");
  34. // izpiše nam ime posameznega stolpca ( t.j. IME, PRIIMEK, VPISNA_ST, LETO_VPISA )
  35. int columns = rs.getMetaData().getColumnCount();
  36. for(int i=1; i<=columns; i++) {
  37. System.out.print(rs.getMetaData().getColumnName(i) + "\t");
  38. }
  39. System.out.println();
  40. // izpiše vsako vrstico v tabeli
  41. // da nam metoda next() ne vrne stavek false, naredimo while zanko, ki se sprehodi
  42. // po celotni tabeli in izpiše vsako vrstico
  43. while (rs.next()) {
  44. for (int ii = 1; ii <= columns; ii++) {
  45. System.out.print(rs.getString(ii)+"\t");
  46. }
  47. System.out.println();
  48. }
  49. // na koncu ne smemo pozabiti, da moramo povezave zapret
  50. // zapremo objekt ResultSet rs
  51. rs.close();
  52. // zapremo objekt Statement stavek
  53. stavek.close();
  54. // zapremo objekt Connection povezava
  55. povezava.close();
  56. }
  57. // če pride do katere napake, nam jo prestreže in javi določeno napako z opisom
  58. catch (Exception e) {
  59. System.out.println(e.getMessage());
  60. e.printStackTrace();
  61. }
  62. }
  63. }
Osebna orodja