Merhaba Arkadaslar,

yazmaya calistigim JavaFX uygulamamda bir MySQL Select sorgulamasi yapiyorum. Eger tablolarin icinde ' tirnak isaretine denk gelirse (örn: mike's gibi) uygulama cöküyor.

java.lang.NullPointerException
    at sample.DBConnector.replaceKomischeStrings(DBConnector.java:262)
    at sample.DBConnector.getAllPDA_Buttonname_From_MySQL(DBConnector.java:227)
    at sample.Controller.bntLoadFromMySQL_tiklandi(Controller.java:813)

Bunu önlemek icin asagidaki gibi ufak bir kod ekledim fakat genede cöküyor.

 public static String replaceKomischeStrings(String s) throws NullPointerException {
        String geriyeGidecekStr = "";
        try {
            if (s.contains("\\'")) {   /*** Burasi 262. Satir ***/
                geriyeGidecekStr = s.replace("'", "");
            } else {
                geriyeGidecekStr = s;
            }
        } catch (Exception e) {
            e.printStackTrace();
            StringWriter errors = new StringWriter();
            e.printStackTrace(new PrintWriter(errors));
            new LogInfo().setLogData(errors.toString());
        }
        return checkNull(geriyeGidecekStr);
    }

    public static String checkNull(String s) {
        String gidecekStr = "";
        if (s == null) {
            gidecekStr = "";
        } else {
            gidecekStr = s;
        }
        return gidecekStr;
    }

SELECT den dönen tirnak isaretlerini yok etmenin baska bir yöntemi var midir?

Tesekkürler

Erkan Kaplan

soruldu: 03 Nis, 19:41

kaplanerkan's gravatar image

kaplanerkan
1031613
cevap kabul oranı: 0%


satır 262'yi aşağıdaki gibi değiştirip tekrar deneyebilir misin?

if (s.contains("'")) {
      geriyeGidecekStr = s.replace("'", "\\'");
 } else {
      geriyeGidecekStr = s;
   }

Yukarıdaki satır işe yaramazsa buraya tam kodlarını eklersen yardımcı olmaya çalışırım.

Edit:

Sorun tamamen sql sorgusundan kaynaklanıyor. Kodlarını inceledim ve hatta kendi bilgisayarımda küçük bir deneme yaptım. İçerisinde ' işareti (apostrophe) bulunan kayıtlar null dönüyor. Dolayısıyla 196 - 205 satırları arasında; atıfta bulunduğun replaceKomischeStrings() fonksiyonu NullPointerException hatası veriyor. Sql sorgunu aşağıdaki gibi değiştirirsen herhangi bir hata kalmayacaktır.

SELECT * FROM table WHERE columnName LIKE "%\\\\'" || columName like "%";
permanent link

cevaplandı: 03 Nis, 20:15

emrecan-oztas's gravatar image

emrecan-oztas
4.1k62146
cevap kabul oranı: 23%

değiştirildi: 04 Nis, 12:43

Öneriniz icin tesekkürler. Sonuc gene ayni. 2 ve 4 kez arka arkaya ters slash ile degisik yerlerde denedim ama sonuc hep ayni ve IF satirinda hep cöküyor.

Kullandigim DBConnector asagidaki adresde: http://paste.ubuntu.com/15607851/

(04 Nis, 02:46) kaplanerkan kaplanerkan's gravatar image

"%\\'" şeklinde olacak. Sistem fazladan \\ ekliyor.

(04 Nis, 12:44) emrecan-oztas emrecan-oztas's gravatar image

anladim hocam fakat bir sorun var:

Kullandigim SQL STring asagidaki gibi;

String SQL = "SELECT Menue, ShortCut, Text_D, Text_C, Preis3, Bon_D, Bon_C, Sort, Gruppe, Aktiv FROM menu ;";

Apostrophe isaretinin nerden gelecegi belli olmuyor; Text_D, Text_C, Bon_C veya Bon_D de gelme olasiligi nerdeyse 100% gibi (digerlerinde gelmesi imkansiz)

Bu 4 column'u nasil kombine edebilirim?

(04 Nis, 13:12) kaplanerkan kaplanerkan's gravatar image

Asagidaki sekilde birsaeyler buldum fakat uyum saglamadi :-(

        String SQL = "SELECT Menue, ShortCut, Preis3, Sort, Gruppe, Aktiv, " +
                    " REPLACE(Text_D, '\\'', '') as Text_D, " +
                    " REPLACE(Text_C, '\\'', '') as Text_C, " +
                    " REPLACE(Bon_C,  '\\'', '') as Bon_C, " +
                    " REPLACE(Bon_D,  '\\'', '') as Bon_D " +
                    " FROM menu ;";
(04 Nis, 13:48) kaplanerkan kaplanerkan's gravatar image

Pardon, yanlislik olmus...Islem tamamdir,,,

image

(04 Nis, 13:55) kaplanerkan kaplanerkan's gravatar image

Hocams sag olun, iyi fikir verdiniz. Dediginiz gibi Javanin REPLACE si ile degilde, aksine MySQL in SELECT komutuna uygulanan REPLACE ile olayi kökünden hallettim :-)

permanent link

cevaplandı: 04 Nis, 14:04

kaplanerkan's gravatar image

kaplanerkan
1031613
cevap kabul oranı: 0%

sorunun halolmasına sevindim. sql sorgusu baya uzun olacaktı :)

(04 Nis, 15:47) emrecan-oztas emrecan-oztas's gravatar image
Cevabınız
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×144
×27
×5

Soruldu: 03 Nis, 19:41

Görüntüleme: 276 kez

Son güncelleme: 04 Nis, 15:47

powered by BitNami OSQA