Konuyu görüntüle
IUCODERS FORUM > Programlama > JAVA > String post
Yazar
ssrr


avatar

Kayıt: 18.02.2014
18.02.2014-16:28 #79067
Merhaba.

String sql = "SELECT * FROM user WHERE username =? and password =?" ;
             pst = conn.prepareStatement(sql);
             pst.setString(1, username.getText());
             pst.setString(2, password.getText());
             rs = pst.executeQuery();
             if(rs.next()){
              ClientForm clientForm = new ClientForm();
              clientForm.setVisible(true);
              clientForm.setAd(rs.getString("ad"));
              clientForm.setSoyAd(rs.getString("soyad"));



bu formda setad ve setsoyad ile clientForm daki global ad ve soyad degiskenlerini set ediyorum.
clientForm da ad ve soy ad hala null neden olabilir?







Yazar
proceed


avatar

Kayıt: 30.09.2013
18.02.2014-22:40 #79069
3,4,6,9,10 . satırlara breakpoint atıp debug eder misin? Buralardaki string değerleri boş mu dolu mu öğrenmemiz gerek.bir de sanırım username ve password textfield. burada boş değer girilip event tetiklendiğinde de hata verebilir.





Yazar
ssrr


avatar

Kayıt: 18.02.2014
19.02.2014-09:40 #79070
veritabanindan null gelmedigine eminim cunku rs.next blogu calisiyor. degeri clientForm da textfield e almak istiyorum

clientForm da ad ve soyad global degisken.
public String ad;
public String soyAd;

form1 kullanici adi ve password dogru ise form2 yi aktif ediyor ve form2 de bulunan textfield e hosgeldin "ad" "soyAd" demek istiyorum.

form2 de ziyaretci diye bi textfield var

simdi bu global degiskenleri getter ile textfield e atiyorum bu sirada degerler null geliyor.

ziyaretci.setText(getAd()+getSoyAd());

Mehaba nullnull





Yazar
proceed


avatar

Kayıt: 30.09.2013
19.02.2014-13:15 #79071
ziyaretci.setText(getAd()+getSoyAd()); 


eğer kod bu ise normal. clientForm.getAd() ve clientForm.getSoyAd() olmalı.Aklıma gelen başka bir şey de eğer sen ziyaretci label ına if(rs.next()){ blogu içinde atama yapmıyorsan clientForm nesnesini if blogunun içinde oluşturduğun için nesneyi bu blogun dısında kullanamazsın.eğer kullanmak istiyorsan
ClientForm clientForm =null;
if(rs.next()){
clientForm=new ClientForm();
//setter
}
if(clientForm!=null){
ziyaretci.setText(clientForm.getAd());

}

gibi kullanabilirsin.Eğer sorun bunlarda da değilse ve getter setter larda da problem yoksa veritanbanından gelen değerlerde sorun vardır





Yazar
ssrr


avatar

Kayıt: 18.02.2014
19.02.2014-14:17 #79072
sagol dostum haklisin getAd ve soyad i clientForm.getAd ile almam lazim ama sorun şu ki ben ClientForm = new clentForm deyip 2. formu yaratıyorum ve aktif ettikten sonra clientForm'un constructur kisminda kalan olaylari halletmeye valisiyorum. yani farkli iki class var, bu nedenle ikinci formun constructor da clientForm diye bi nesne yok, o nedenle ben bu nesneyi yaratırken onun global ad ve soyad degiskenine bu ad ve soy adi set etmeliyim bunu nasıl yaparım bi fikrin var mı? umarım nlatabilmisimdir.

class A {
B sinif = new B();
sinif.setad("xx");
}

class B{
string ad;


B(){

print ("merhaba" this.ad)

}

Merhaba xx. diyor

gibi.





Yazar
ssrr


avatar

Kayıt: 18.02.2014
19.02.2014-15:53 #79073
Sorunu ClientForm'un yapilandiricisini cagirarak hallettim

public ClientForm(String ad, String soyAd) throws ClassNotFoundException, SQLException {
        this.ad =ad;
        this.soyAd =soyAd;}




Soyle bi problemim daha var,

String sql = "SELECT * FROM user WHERE username =? and password =?" ;
             pst = conn.prepareStatement(sql);
             pst.setString(1, username.getText());
             pst.setString(2, password.getText());
             rs = pst.executeQuery();
             if(rs.next()){
               
                
              clientForm = new ClientForm();
              clientForm.setVisible(true);         
  


burada username ve password olarak aldigim degerleri veritabaninda karsilastirarak form2 yi yukluyorum.

veritabaninda user tablosu soyle

id username password ad soyad
1 test test test test

kullanici test test seklinde giris yapiyor

ilginc olan TEst teST seklinde kucuk buyuk harf farketmeksizin giris yapabiliyor. database ayarlarinda mi sorun var acaba,

mysql 5.4 var table utf_8_general_ci








Yazar
proceed


avatar

Kayıt: 30.09.2013
19.02.2014-17:31 #79074
String sql = "SELECT * FROM user WHERE BINARY username =? and BINARY password =?" ;

Bu sorgu işini görecektir.
detay : http://dev.mysql.com/doc/refman/5.0/en/charset-binary-op.html





Yazar
ssrr


avatar

Kayıt: 18.02.2014
20.02.2014-16:17 #79075
proceed yazdi
 
String sql = "SELECT * FROM user WHERE BINARY username =? and BINARY password =?" ;

Bu sorgu işini görecektir.
detay : http://dev.mysql.com/doc/refman/5.0/en/charset-binary-op.html


sagol dostum bu isimi gordu, eski surumlerde orun cikmiyordu yeni surumlere ait bir ozellik galiba bu.





Del.icio.us
Digg
Facebook
Furl
Google
Blink
Simpy
Spurl
Y! MyWeb