Quantcast
Channel: BTSoru.com - Bilisim ve Yazilim Teknolojileri Soru/Cevap Platformu - latest questions
Viewing all articles
Browse latest Browse all 4270

Connection nesnesini Injecte etme

$
0
0

Merhabalar. Bir deneme projemde JDBC ile oluşturduğum Connection nesnesini Inject annotasyonu ile injekte etmek istiyorum. Inject yapmayıp Veritabani vt=new Veritabani(); dediğimde proje çalışmasına karşın, Inject Veritabani vt; dediğimde nullpointerexception hatası alıyorum. Bu tip nesnelerin enjeksiyonu mümkün değil mi yoksa ben mi bir hata yapıyorumdur.

Sorunun açıklayıcı olması açısından kodları gönderiyorum. Teşekkürler.

Interface sınıf

package com.orhan.mini_cbs.vt;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;

/**
 *
 * @author Orhan
 */
public interface VeritabaniAy {
   Connection baglantiKur();
   void baglantiKapat(ResultSet sonucT, Statement beyan);
}

Implement sınıf

    package com.orhan.mini_cbs.vt;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

/**
 *
 * @author Orhan
 */
public class Veritabani implements VeritabaniAy{
    private static final String SURUCU="org.apache.derby.jdbc.ClientDriver";
    private static final String VT_ADRES="jdbc:derby://localhost:1527/mini_gis";
    private static final String KULLANICI="orhan";
    private static final String PAROLA="2524305";
    private static Connection vt_baglanti=null;
    @Override
      public Connection baglantiKur(){

         try{
              Class.forName(SURUCU);
              System.out.println("Sürücü yerleştirildi...");
         }catch(ClassNotFoundException cnfe){
             System.out.println(cnfe.getMessage());
         }
         try{
         vt_baglanti=DriverManager.getConnection(VT_ADRES, KULLANICI,PAROLA);
        System.out.println("Bağlantı kuruldu...");
         }catch(SQLException sqle){
             System.out.println(sqle.getMessage());
         }
         return vt_baglanti;
     }
    @Override
   public void baglantiKapat(ResultSet sonucT, Statement beyan){
        try {
            vt_baglanti.close();
            System.out.println("Bağlantı kapatıldı...");
        } catch (SQLException sqle) {
            System.out.println(sqle.getMessage());
        }
   }
}

Enjeksiyonun yapılacağı sınıf

package com.orhan.mini_cbs.srg;

import com.orhan.mini_cbs.vt.VeritabaniAy;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.inject.Inject;

/**
 *
 * @author Orhan
 */
public class Sorgular implements SorgularAy{

    @Inject
    private VeritabaniAy vt;
    private Statement beyan=null;
    @Override
    public ResultSet hepsiniGetir(String sorgu) {
       //Veritabani vt=new Veritabani();
        Connection baglanti=vt.baglantiKur();

        try{
            beyan=baglanti.createStatement();
            ResultSet sonucT=beyan.executeQuery(sorgu);
            return sonucT;
        }catch(SQLException e){
            System.out.println("Sorgu hatası : " +e.getMessage());
        }   
        return null;
    }
}

Main sınıfı

package com.orhan.mini_cbs.srg;

import java.sql.ResultSet;
import java.sql.SQLException;

/**
 *
 * @author Orhan
 */
public class Uygulama {
    public static void main(String[] args){
        Sorgular sorgula=new Sorgular();
        ResultSet sonuc=sorgula.hepsiniGetir("Select * from sekil");
      try{ 
        while(sonuc.next()){
        System.out.println(sonuc.getString(2));
        }
      }catch(SQLException e) {
          System.out.println("Hata var!" + e.getMessage());
      }
    }
}

Sonuç

Exception in thread "main" java.lang.NullPointerException
    at com.orhan.mini_cbs.srg.Sorgular.hepsiniGetir(Sorgular.java:28)
    at com.orhan.mini_cbs.srg.Uygulama.main(Uygulama.java:19)

Viewing all articles
Browse latest Browse all 4270

Trending Articles


huddam daveti


Tekasür Suresi


"Yâ Kuddûs!" Esması Havâs ve Esrârı


Kasemi Mübelliğa


Peri44


Kuvvetli muhabbet ve aşk tılsımı


El-Mütekebbir


Papaz büyüsü


SCCM 2012 Client Installation issue


Zilhicce Ayının Namaz Duası ÖNEMLİ