JSF Ile Veri Silme

Onceki makalelerde JSF ve kullandigi bilesenlerden bahsettik. Ve bununla birlikte verilerimizi nasil listeleyebildigimizi, yeni verileri nasil ekleyebilecegimizi, bunlar uzerinde nasil duzenlemeler yapabilecegimizi incelemistik. Son olarak verilerimizi nasil silecegimizden bahsedecegim.
Bir onceki makalede olusturdugumuz uygulamanin uzerinden devam edecek olursak bu kez yine oncelikle java class’larimizi olusturmakla ise basliyoruz. Hemen ardindan faces-config.xml dosyamiza iletisimi saglayacak kodlari ve son olarakta JSF sayfamizin tasarimini gerceklestiriyoruz.
Yazarlar.Java Kaynak Kodu ;
public class Yazarlar {
private int YazarId;
private String YazarAdi;
private String YazarSoyadi;
public Yazarlar() { }
public String getYazarAdi() {
return YazarAdi; }
public void setYazarAdi(String YazarAdi) {
this.YazarAdi = YazarAdi; }
public int getYazarId() {
return YazarId; }
public void setYazarId(int YazarId) {
this.YazarId = YazarId; }
public String getYazarSoyadi() {
return YazarSoyadi; }
public void setYazarSoyadi(String YazarSoyadi) {
this.YazarSoyadi = YazarSoyadi; }
}
YazarlarSilBean.Java Kaynak Kodu ;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.faces.context.FacesContext;
import javax.servlet.http.HttpServletRequest;
public class YazarlarSilBean {
private Yazarlar yazarlar = new Yazarlar();
private static String URL = "jdbc:derby://localhost:1527/odev";
private static String USERNAME = "odev";
private static String PASSWORD = "odev";
public YazarlarSilBean()
{
FacesContext context = FacesContext.getCurrentInstance();
HttpServletRequest request = (HttpServletRequest) context.getExternalContext().getRequest();
if (request.getParameter("yazarid") != null) { Integer
yazarid
= Integer.parseInt(request.getParameter("yazarid")); try { Class.forName("org.apache.derby.jdbc.ClientDriver"); Connection connection = DriverManager.getConnection(URL, USERNAME,PASSWORD); PreparedStatement pstmt = connection.prepareStatement("SELECT * FROM YAZARLAR WHERE YAZARID=?"); pstmt.setInt(1,
yazarid
); ResultSet rs = pstmt.executeQuery(); if (rs.next()) { yazarlar = new Yazarlar(); yazarlar.setYazarId(rs.getInt("yazarid")); yazarlar.setYazarAdi(rs.getString("yazaradi")); yazarlar.setYazarSoyadi(rs.getString("yazarsoyadi")); } pstmt.close(); connection.close(); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } } } public String
yazarlarSilme
()
{
try {
Class.forName("org.apache.derby.jdbc.ClientDriver");
Connection connection = DriverManager.getConnection(URL, USERNAME,PASSWORD);
PreparedStatement pstmt = connection.prepareStatement("DELETE FROM YAZARLAR WHERE YAZARID=?");
pstmt.setInt(1, yazarlar.getYazarId());
pstmt.execute();
pstmt.close();
connection.close();
}
catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return "Yazarlar_Liste";
}
public Yazarlar getYazarlar() {
return yazarlar; }
public void setYazarlar(Yazarlar yazarlar) {
this.yazarlar = yazarlar; }
}
Faces-Config.XML Kaynak Kodu ;
<faces-config version="2.0"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd">
<managed-bean>
<managed-bean-name>yazarlarListBean</managed-bean-name>
<managed-bean-class>YazarlarListBean</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
<managed-bean>
<managed-bean-name>yazarlarEkleBean</managed-bean-name>
<managed-bean-class>YazarlarEkleBean</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
<managed-bean>
<managed-bean-name>yazarlarGuncelleBean</managed-bean-name>
<managed-bean-class>YazarlarGuncelleBean</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
<managed-bean>
<managed-bean-name>yazarlarSilBean</managed-bean-name>
<managed-bean-class>YazarlarSilBean</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
<navigation-rule>
<from-view-id>YazarEkle.xhtml</from-view-id>
<navigation-case>
<from-outcome>Yazarlar_Liste</from-outcome>
<to-view-id>index.xhtml</to-view-id>
<redirect />
</navigation-case>
</navigation-rule>
<navigation-rule>
<from-view-id>YazarGuncelle.xhtml</from-view-id>
<navigation-case>
<from-outcome>Yazarlar_Liste</from-outcome>
<to-view-id>index.xhtml</to-view-id>
<redirect />
</navigation-case>
</navigation-rule>
<navigation-rule>
<from-view-id>YazarSil.xhtml</from-view-id>
<navigation-case>
<from-outcome>Yazarlar_Liste</from-outcome>
<to-view-id>index.xhtml</to-view-id>
<redirect />
</navigation-case>
</navigation-rule>
</faces-config>
YazarSil.XHTML Kaynak Kodu ;
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html"> <h:head> <title>Facelet Title</title> </h:head> <h:body> <h:form prependId="false"> <h:inputHidden value="#{
yazarlarSilBean.yazarlar.yazarId
}" /> <h:panelGrid columns="2"> <h:outputText value="Ad" /> <h:inputText value="#{
yazarlarSilBean.yazarlar.yazarAdi
}" /> <h:outputText value="Soyad" /> <h:inputText value="#{
yazarlarSilBean.yazarlar.yazarSoyadi
}" /> <h:commandButton value="Sil" action="#{
yazarlarSilBean.yazarlarSilme()
}" />
</h:panelGrid>
</h:form>
</h:body>
</html>
Index.XHTML Kaynak Kodu ;Index.XHTML Kaynak Kodu ;
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core"> <h:head> <title>Facelet Title</title> </h:head> <h:body> <h:dataTable value="#{
yazarlarListBean.yazarlar
}" var="
yazar
"> <f:facet name="header">Yazarlar</f:facet> <h:column> <f:facet name="header">Id</f:facet> #{
yazar.yazarId
} </h:column> <h:column> <f:facet name="header">Ad</f:facet> #{
yazar.yazarAdi
} </h:column> <h:column> <f:facet name="header">Soyad</f:facet> #{
yazar.yazarSoyadi
}
</h:column>
<h:column>
<f:facet name="header"> </f:facet>
<h:outputLink value="YazarGuncelle.xhtml">
Secileni Duzenle
<f:param name="yazarid" value="#{yazar.yazarId}" />
</h:outputLink>
</h:column>
<h:column>
<f:facet name="header"> </f:facet>
<h:outputLink value="YazarSil.xhtml">
Secileni Sil
<f:param name="yazarid" value="#{yazar.yazarId}" />
</h:outputLink>
</h:column>
</h:dataTable>
</h:body>
<h:outputLink value="YazarEkle.xhtml">
Yazar Ekle
</h:outputLink>
</html>
Ekran Goruntuleri ;
Secileni Sil linkine tiklanildiginda karsimiza YazarSil.XHtml gelecektir. Asagida ki goruntude de dikkat edeceginiz gibi yazarid'sini veri tabanina
YazarSil.xhtml?yazarid=18
seklinde gonderiyor.
Verilerimiz otomatik olarak karsimiza geliyor. Silecegimizden emin oldugumuz an sil butonu ile islemi baslatmis oluyoruz. Ve tekrar ana sayfamiz olan index.xhtml verileri guncellemis bir sekilde karsimiza gelmis oluyor.
Keyifli Calismalar Dilerim...
Yorumlar