Kezdőoldal » Számítástechnika » Programozás » Java ab felhasználónév csekkol...

LandiikaaAnonim kérdése:

Java ab felhasználónév csekkolás ha van, már nem hozza létre, hogyan tovább?

Figyelt kérdés

private void userscheck() throws SQLException {

String user = view.getpRegistration().getTfUser().getText();

String sql = "SELECT felhasznalonev FROM chat WHERE felhasznalonev ='" +user;

pst = cn.prepareStatement(sql);



if(sql.equals(user)){

System.out.println("van");

}

}


A kapcsolat teljesen jól működik, igazából csak azt a részt nem tudom, hogy mikor megírtam az sql Stringbe a lekérdezést, akkor az if-be, hogy írjam meg azt a részt, ha az sql(vagyis a névellenőrzés) adott értéket mondjuk 1-et, akkor létezik az adott nevű felh. tehát nem hozható létre még egy, a kérdésem mit írjak az if-be? ha lehetne akkor programkódban várnám a választ:P



2014. máj. 20. 17:00
 1/7 anonim ***** válasza:

> ha lehetne akkor programkódban várnám a választ:P

Ha lehetne, akkor olvasd végig a tutorialt, ami bemutatja a PreparedStatement használatát. :P Egyrészt választ kapnál a kérdésedre, másrészt nem vétenél olyan hibát, mint fent, a "+user" környékén.


[link]


Például:

[link]


"ha az sql(vagyis a névellenőrzés) adott értéket mondjuk 1-et, akkor létezik az adott nevű felh."

Ezt meg fogalmazd át. A fenti lekérdezésed nem 1-et, és nem is más számot fog adni, hanem egy rekord listát, rekordonként egyetlen mezővel (felhasznalonev). Mit szeretnél pontosan kideríteni?

2014. máj. 20. 18:09
Hasznos számodra ez a válasz?
 2/7 anonim ***** válasza:

#1 vagyok, javítok:


"Egyrészt választ kapnál a kérdésedre,"

helyett:

"Egyrészt megtudnád, hogyan kell egy lekérdezést lefuttatni és az eredményét feldolgozni,"

2014. máj. 20. 18:21
Hasznos számodra ez a válasz?
 3/7 A kérdező kommentje:

az szeretném, hogy adatbázisomba van tárolva x név a hozzá tartozó jelszóval( itt a jelszó most nem számít), ez a része a programnak azt a feladatot látná el, hogy mikor egy felhasználó regisztrálni szeretne, akkor beírja a felh, jelszavát, és ha még nincs olyan akkor megteheti, de ha már van, akkor kap egy hibaüzenetet, hogy már létezik!


String user = view.getpRegistration().getTfUser().getText();

String sql = "SELECT Count(*) FROM chat WHERE felhasznalonev ='" +user+"'";


a user String tárolja az a felhasználónevet, amit emberem megadott, az sql string meg a lekérdezés a táblámból, hogy van -e ilyen.. tehetném ezt felhasználóra szűrve, vagy Count(*) összeszámlálva is, lényegében mindegy, azt nem tudom melyik változom adja vissza azt az értéket, vagyis miből tudom azt kinyerni, hogy a feltett sql utasításomnak az eredménye 1 vagyis van, vagy nulla, vagy felh: = sajt, és mivel a user, vagyis amit megadott sajt volt az is 1 tehát már van, nem adhatod meg, hogy írjam ezt meg?

2014. máj. 20. 18:22
 4/7 A kérdező kommentje:
tudom hogy kell lefutatni azt nem tudom melyikből kapom meg azt az értéket ami nekem kell
2014. máj. 20. 18:23
 5/7 anonim ***** válasza:

A fenti Mkyong tutorialban pedig van példa query eredményének feldolgozására, de nyilván nem fedi le az összes lehetőséget. Ilyenkor jó belenézni a ResultSet javadoc-jába, milyen metódusai vannak. Van neki olyan getInt() metódusa, ami oszlopszámot vár paraméterül, vagyis hogy hányadik oszlopból akarsz kiolvasni int-et:

[link]


Vigyázat, itt most az indexelés 1-től megy.


Az Mkyong-os példában ott a futtatás és feldolgozás, ő ott getString-el kér ki, azt kell lecserélned a getInt-re.

2014. máj. 20. 23:09
Hasznos számodra ez a válasz?
 6/7 A kérdező kommentje:

sikerült végül megoldanom magamtól csak időigényes volt így, így néz ki a teljes kód:

private void userscheck() throws SQLException {

view.getpRegistration().getlMessage().setText("Adja meg felh. és jelszavát (minimum 1 karakter hossz!).");

String user = view.getpRegistration().getTfUser().getText();

String sql = "SELECT felhasznalonev FROM chat";

pst = cn.prepareStatement(sql);

rs = pst.executeQuery();

ResultSetMetaData rsMd = rs.getMetaData();

int Column = rsMd.getColumnCount();

while (rs.next()) {

Object[] file = new Object[Column];

for (int i = 0; i < Column; i++) {

file[i] = rs.getObject(i + 1);

if (file[i].equals(user)) {

view.getpRegistration().getlMessage().setText("Van már ilyen nevű felhasználó!");

cn.close();

}


}

}


}

2014. máj. 21. 10:17
 7/7 anonim ***** válasza:
Szupi :) mondjuk a PS-t ne a ciklusban és ne egy if-ben zárd le, hanem azokon kívül. :) Különben a memóriában marad és memory leak-be futhatsz.
2014. máj. 21. 12:53
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!