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.
java + sql
3
747
Vastaukset
- Piru_
tossa miten yhdisteään databaseen
http://zamov.online.fr/EXHTML/JAVA/JAVA_376038.html
tuolla oikeastaan ihan tietokannan asentamisesta kantahakuihin asti.
Vaikka sivu on pitkä, niin lopussa löytyy koko luoka koodi, millä tehdään kantaan muutoksia
http://www.developer.com/java/data/article.php/3417381 - 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
Et siis vieläkään
Et ilmeisesti ole vieläkään päässyt loppuun asti mun kirjoituksissa täällä. Kerro ihmeessä sit, kun valmista 😁 tuskin k512274Hyvä että lähdit siitä
Ties mitä oisin keksinyt jos oisit jäänyt siihen, näit varmaan miten katoin sua.... 😘🤭😎💖261117Aavistatko että moni tietää
Vai ollaanko hyvin vedätetty pokerinaamalla. No kun vähiten odotat niin yllätämme sinut82992Yritin saada
Vastauksia mutta et voinut olla rehellinen ja kaiken kannoin yksin. Halusin kovasti ymmärtää mutta en voi enää ymmärtää.11914Koronarokotus sattui oudon paljon nyt sairaanhoitaja Tanja 46 istuu pyörätuolissa
Pitkä piina piikistä Kun Tanja Vatka käy suihkussa, tuntuu kuin ihoa revittäisiin raastinraudalla irti. Hän on kärsinyt55902- 68883
Olisitko mies valmis?
Maksamaan naisellesi/vaimollesi/tyttöystävällesi elämisestä syntyvät kulut, ruokailun, vuokran ja muut välttämättömät me127867Kronikat..
Mikä hele… on tää yks kronikat mikä suoltaa facessa kaikkea julkaisua ja AINA samoista firmoista imatralla??? Eikö ne mu10783vieläkin sanoa voin...
💖💛💖💛💖💛💖💛💖 💛 Beijjjbeh 💛 Kaks vuotta tänään täällä. Miten hitossa jotkut on jaksaneet kymmeniä vuos22783Täällä istun ja mietin
Miten paljon haluaisin katsoa sinua juuri niin kuin haluaisin katsoa sinua. Rakastavin silmin. Näkisit vihdoin senkin pu49759