JSF

JSF Dersleri-Dosyayı Veri Tabanı Aracılığı İle Okuma

Merhaba arkadaşlar. Bu yazıda projemize yüklediğimiz dosyayı veritabanı aracılığı ile nasıl okuyacağımızı öğrenmeye çalışacağız.

Öncelikle örnek uygulamadan bahsedeyim biraz. Yazdığım uygulamada hem dosya yükleme hem de yüklenen dosyayı okuma özelliği var. Uygulama kodları biraz uzun oldu. Onun için projeyi ve .sql dosyasını .rar dosyası halinde buradan indirebilirsiniz. Yazı içinde tüm kodları yayınlamak yerine anlatmak istediğim yerlerdeki kodları yayınlayacağım. Projeyi kendiniz çalıştırıp da bana sormak istediğiniz bir şey olursa yazının altındaki yorum kısmını kullanabilirsiniz.

Örneğin ben bu uygulama ile şu dosyaları yükledim:

Adsız

 

 

 

 

 

 

 

 

Veri tabanında da yüklediğim dosyaların nerede oldukları tutuluyor.

Adsız

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Bean.java’dan Kod Parçası

Aşağıdaki kod parçasında yüklenen dosyanın nereye yazılacağını dosyaYolu değişkeni ile bildiriyoruz. Veri tabanına gönderirken de  bu dosyaYolu değişkenine dosyanın ismini ekleyerek gönderiyoruz çünkü okuma işleminde dosya yolu ve ismi lazım olacak bize.

try{
        String dosyaYolu="C:\Users\ilkay\Documents\NetBeansProjects\JSFDosyaVeriTabani\Dosyalar\";    
        dosya.write(dosyaYolu+getFileName(dosya));
        Class.forName("com.mysql.jdbc.Driver");
        con=DriverManager.getConnection("jdbc:mysql://localhost:3306/insankaynaklari?useUnicode=true&characterEncoding=UTF-8","ilkay","12345");
        ps=con.prepareStatement("INSERT INTO cvler(Ad,CV) VALUES(?,?)");
        ps.setString(1, ad);
        ps.setString(2,dosyaYolu+getFileName(dosya) );
         i=ps.executeUpdate();
         con.close();
        }
        catch(Exception ex)
        {
            System.out.println("nHATA MESAJI"+ex);
        }

DosyaOkuma.java’dan Bir Kod Parçası

Aşağıdaki kod parçasında da daha önce Java İle Doc/Docx Dosyasını Okuma yazımda anlattığım işlemi yapıyoruz. Bir string nesnesi içinde okunan bilgiler tutuluyor ve bu string xhtml sayfası tarafından çağrılarak bilgiler ekrana basılıyor. Bu string tarafından kimin bilgilerinin tutulacağına dosya yoluna bakılarak karar veriliyor. Dosya yolu, bu kod içine xhtml kodundan f:param etiketi ile gönderiliyor. getYolParam metodu burada bilgiyi çekmemizi sağlayan metot.

public  String dosyaOku()
    {
        try 
        {
            FacesContext fc = FacesContext.getCurrentInstance();
            dosyaYolu = getYolParam(fc);
            FileInputStream fis = new FileInputStream(dosyaYolu);            
            XWPFWordExtractor oleTextExtractor =new XWPFWordExtractor(new XWPFDocument(fis));
            
           bilgi=oleTextExtractor.getText();
           return "icerik.xhtml?faces-redirect=true";
        } 
        catch (Exception e) {
                System.out.println("HATANIZ:"+e);
                return "";
        }
    }

	public String getYolParam(FacesContext fc){
 
		Map<String,String> params = fc.getExternalContext().getRequestParameterMap();
		return params.get("dosyaYolu");
 
	}

 

cvlistesi.xhtml’den Bir Kod Parçası

Bu kod parçasında dikkat etmemiz gereken nokta parametre göndermek. Çünkü tıklanan kişinin bilgilerini getirecek olan metot kimin bilgilerini getireceğine dosya yolu ile karar veriyor ve bizim bu dosya yolunu f:param ile Java tarafındaki metoda geçirmemiz lazım. f:param etiketinin name bileşenine verdiğimiz değeri Java tarafında kullanarak value bileşenine verdiğimiz değeri çekeceğiz ve böylece dosya yolunu bilen kod, bilgileri rahatça çekecek.

 <h:form>
            <h:dataTable value="#{bean.cvListesi()}" var="yaz">
                <h:column>
                <f:facet name="header">CV Listesi</f:facet>
                <h:commandLink action="#{dosyaOkuma.dosyaOku()}" value="#{yaz.ad}">
                    <f:param name="dosyaYolu" value="#{yaz.dosyaYolu}"/>
                </h:commandLink>
                </h:column>
            </h:dataTable>
        </h:form>

 

Uygulamanın Ekran Çıktıları

Bu kısımdan isim soyisim girip dosya seçip yükleme işlemini yapabilirsiniz.

Bu kısımdan isim soyisim girip dosya seçip yükleme işlemini yapabilirsiniz. Ben CV Listesi İçin Tıklayın’a tıklıyorum.

 

 

 

 

 

 

 

 

 

 

 

Proje klasörüne yüklenmiş CV'ler listelendi. Şimdi Fatih Çal ismine tıklıyorum.

Proje klasörüne yüklenmiş CV’ler listelendi. Şimdi Fatih Çal ismine tıklıyorum.

 

 

 

 

 

 

 

 

 

 

 

Fatih Çal'a ait bilgiler dosyadan okunup ekrana basıldı.

Fatih Çal’a ait bilgiler dosyadan okunup ekrana basıldı.

 

 

 

 

 

 

Veri tabanındaki dosya yolu ile bu şekilde işlem yapabiliriz arkadaşlar. Başka bir yazıda görüşmek üzere sağlıcakla kalın.

Yorum Yap