java + sql

ööööh

Pitäis vähän kouluhommia saada tehtyä ja tuli ISO ongelma...
ELi:
osaako joku sanoa, että miten sisällytetään mysql(tai sql) komento java koodiin? Select toimii mutta haluaisin insert-toiminnon myös. Tarkoitus olisi siis, että javalla kysyttäis erikseen yksi(tai kaikki) muuttuja ja jotka vietäisii sitten sql-komentoon? Siis kysytään ja otetaan talteen syöte javalla mutta miten sen saa SQL:n sekaan, siten että tietokantaan kohdistuvan sql-komennon yksi muuttuja olisi käyttäjän annettavissa?

Eli koska edellinen oli sekavasti niin laitan vähän esimerkkiä, jos siitä olisi ymmärtämisessä apua.
SQL:llä se toimisi näin (tämmöinen toimii mutta harva käyttäjä osaa/haluaa antaa SQL-komentoja)
insert into henkiloTaulu values ('Seppo', 'Semmonen');

ja haluaisin että javalla kysyttäis:
1.Lisää uusi henkilö
anna valinta> 1

Anna etunimi> Seppo

Anna sukunimi> Semmonen

Uusi henkilö lisätty tietokantaan

Eli jos tälläisestä olisi jossain esimerkkiä tai joku jaksaisi laittaa vähän mallia niin kiitos hänelle.

3

755

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • Piru_
    • avusta

      jep, alkoi homma valkenemaan kun sain esimerkin. Kiitos vaivannäöstä!!

    • I.Proqatlis

      Minulla on valmis esimerkki tästä aiheesta. Olen tehnyt jalkapallosovelluksen, jossa mm. kirjataan tuloksia java-käyttöliittymällä ja annetut tiedot viedään MySQL-tietokantaan.

      Seuraavassa on koodi, mitä tapahtuu, kun tiedot on annettu ja klikataan hyväksymispainiketta.

      Hieman taustaa: minulla on Swing-ikkuna, jossa annetaan seuraavat tiedot comboboxeissa:

      - pelipäivä (vuosi, kuukausi ja päivä erillisissä comboboxeissa)
      - minkä maan sarjasta on kysymys
      - mikä sarjataso
      - kotijoukkue
      - vierasjoukkue
      - kotijoukkueen tekemät maalit
      - vierasjoukkueen tekemät maalit

      Kun nuo tiedot ovat valmiita, niin suoritetaan actionPerformed, jossa käyttöliittymästä haetaan tietokantaan vietävät tiedot ja tehdään insert-operaatio.

      Ydin tässä on, että stringmuuttuja sqlKirjaaTulos saa arvokseen insert-lauseen, jossa muuttujat esitetään kysymysmerkkeinä. Ennen varsinaisen insertin suorittamista jokaiselle muuttujalle pitää antaa arvo, esim.

      pstmt.setInt(4, koti);

      tarkoittaa, että neljäs muuttuja insert-lauseessa saa arvokseen koti-muuttujassa olevan arvon, joka on integer-tyyppinen.

      Tämä on asiayhteydestään irrotettu koodinpätkä, mutta menetelmä tiedon kirjoittamiseksi tietokantaan käynee selville.

      -------------------------------------------------------------------------------------------------

      public void actionPerformed(ActionEvent klikkaus) {

      /* *** Tarkista, että eri joukkueet on valittu! *** */

      int koti = joukkueLista.joukkuenroPalauta( kotiJoukkueComboBox.getSelectedIndex() );
      int vieras = joukkueLista.joukkuenroPalauta( vierasJoukkueComboBox.getSelectedIndex() );

      if ( koti == vieras ) {
      JOptionPane.showMessageDialog(
      null,
      "Joukkue ei voi pelata itseään vastaan.",
      "Korjaa virhe!",
      JOptionPane.ERROR_MESSAGE );

      return;
      }


      /* *** Muodosta päiväys comboboxien arvoista *** */

      String vuosi = vuosiComboBox.getSelectedItem().toString();
      String paivays = vuosi "-";
      int kuukausi = kuukausiComboBox.getSelectedIndex() 1;

      if (kuukausi < 10)
      paivays = paivays "0";

      paivays = paivays kuukausi "-";

      int paiva = paivaComboBox.getSelectedIndex() 1;

      if (paiva < 10)
      paivays = paivays "0";

      paivays = paivays paiva;

      /* *** Päiväys on kentässä paivays muodossa yyyy-mm-dd *** */
      /* *** Tee siitä hyväksyttävä java.sql.Date -muotoinen päiväys *** */

      java.sql.Date sqlPaivays = java.sql.Date.valueOf(paivays);


      /* *** Muodosta insert-lause tuloksen kirjaamiseksi *** */

      String sqlKirjaaTulos =
      "INSERT INTO tulokset "
      "( maa, sarja, pelipaiva, kotijoukkue, vierasjoukkue, kotimaalit, vierasmaalit ) "
      "VALUES ( ?, ?, ?, ?, ?, ?, ? )";


      try {
      Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
      Connection yhteys = DriverManager.getConnection(meidanTietokanta, "", "");
      PreparedStatement pstmt = yhteys.prepareStatement(sqlKirjaaTulos);


      /* *** Arvot kaikille insertissä oleville muuttujille *** */

      /* *** setInt kokonaisluvuille *** */
      /* *** setString merkkijonoille *** */
      /* *** setDate päiväyksille *** */

      pstmt.setInt(1, maaNro);
      pstmt.setInt(2, sarjaNro);
      pstmt.setDate(3, sqlPaivays);
      pstmt.setInt(4, koti);
      pstmt.setInt(5, vieras);
      pstmt.setInt(6, kotiMaalitComboBox.getSelectedIndex() );
      pstmt.setInt(7, vierasMaalitComboBox.getSelectedIndex() );


      /* *** Kirjaa rivi tietokantaan *** */

      pstmt.executeUpdate();
      pstmt.close();

      yhteys.close();


      /* *** Informoi onnistuneesta suorituksesta *** */

      JOptionPane.showMessageDialog(
      null,
      "Tulos on kirjattu",
      "OK",
      JOptionPane.INFORMATION_MESSAGE);

      kirjaaButton.setEnabled(false);

      }

      /* *** Virhe?! *** */

      catch (SQLException s) {
      jotainMeniPieleen =
      "SQL-virhe kirjattaessa tulosta:\n"
      s.toString() "\n"
      s.getErrorCode() "\n"
      s.getSQLState();

      JOptionPane.showMessageDialog(
      null,
      jotainMeniPieleen,
      "VIRHE!!!",
      JOptionPane.ERROR_MESSAGE);
      }

      catch (Exception e) {
      jotainMeniPieleen = "Virhe:\n" e.toString() "\n" e.getMessage();

      JOptionPane.showMessageDialog(
      null,
      jotainMeniPieleen,
      "VIRHE!!!",
      JOptionPane.ERROR_MESSAGE);
      }

      } // end of actionPerformed

    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Miksi persuilla ei ole firmoja?

      Kuten vasemmisstolaisilla, esim. Sannalla MA\PI. Eikö ole aika erikoista?
      Maailman menoa
      82
      7076
    2. Persut hommasivat Suomeen 35 000 pientä lasta v. 2015

      Onko Riikka Purra nyt tavoittelemassa tätä samaa historiallista persujen utopiaa? Purram kaksinaamaisessa pelissä vaadit
      Maailman menoa
      26
      7043
    3. Purran tuhoja tuskin saadaan koskaan korjatuksikaan

      Purra on aiheuttanut Suomen taloudelle karmaisevat tuhot. Sen lisäksi Purra on ajanut myös suuren osan Suomen kansasta k
      Maailman menoa
      106
      6143
    4. Persujen kaksoisstandardit: Räsäsen uhkailu paha, Virran uhkailu hyvä

      Tässä taas nähdään kuinka kaksinaamaista porukkaa persut ovat. Mitäs persut tähän?
      Maailman menoa
      45
      5394
    5. Miksette persut irtisanoudu Kirkin lausunnoista?

      Kirkhän muun muassa vaati raiskattuja naisia pidättäytymään abortista ja vaimoja alistumaan aviomiestensä tahtoon. Mik
      Maailman menoa
      84
      5228
    6. Demarikultin uhri kertoo

      Demarikultin uhri kertoo: “En saanut mennä edes suihkuun ilman lupaa” – Seksuaalisen hyväksikäytön uhri kertoo vuosistaa
      Maailman menoa
      60
      5163
    7. Miksi vasemmistolaiset eivät omista yhtään firmaa?

      Vasemmistolaiset eivät omista yhtään firmaa joka työllistäisi ihmisiä. Miksi? No siksi, että jos vasemmistolainen perus
      Maailman menoa
      40
      5088
    8. Sanna valittiin Euroopan huonoimmaksi pääministeriksi

      Sannan kaudella Suomi oli ainut maa missä bkt laski. Kannattaa huomata, että luvut valitsi Sannan huonoimmaksi. Ihmiset
      Maailman menoa
      27
      4575
    9. Purran vuoro kiihoittua Lepomäen sääristä

      "Ulkoministeri Elina sanoo, ettei muuta pukeutumistaan sen mukaan, kenet tapaa, ja että hän ei suostuisi peittämään kasv
      Maailman menoa
      16
      3447
    10. Vasemmistolaiset paskat eivät nousseet seisomaan kun Akaan kaupunginvaltuusto

      vietti hiljaisen hetken Charlie Kirkin muistoksi https://www.aamulehti.fi/uutiset/art-2000011523016.html
      Maailman menoa
      300
      3370
    Aihe