JSF Ile Veri Guncelleme

Onceki makalelerde JSF ve kullandigi bilesenlerden bahsettik. Ve bununla birlikte verilerimizi nasil listeleyebildigimizi ve yeni verileri nasil ekleyebilecegimizi inceledik. Sira geldi daha onceden var olan verilerimizin yeniden duzeltilmesi olayina.
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; }
}
YazarlarGuncelleBean.Java Kaynak Kodlari ;
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 YazarlarGuncelleBean
{
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 YazarlarGuncelleBean()
{
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
yazarlarEkleme()
{
try {
Class.forName("org.apache.derby.jdbc.ClientDriver");
Connection connection = DriverManager.getConnection(URL, USERNAME,PASSWORD);
PreparedStatement pstmt = connection.prepareStatement("UPDATE YAZARLAR SET YAZARADI=?, YAZARSOYADI=? WHERE YAZARID=?");
pstmt.setString(1, yazarlar.getYazarAdi());
pstmt.setString(2, yazarlar.getYazarSoyadi());
pstmt.setInt(3, yazarlar.getYazarId());
pstmt.execute();
pstmt.close();
connection.close();
}
catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return "Yazarlar_Liste";
}
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>
<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>
</faces-config>
YazarGuncelle.XHTML Kayank 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="#{
yazarlarGuncelleBean.yazarlar.yazarId
}" /> <h:panelGrid columns="2"> <h:outputText value="Ad" /> <h:inputText value="#{
yazarlarGuncelleBean.yazarlar.yazarAdi
}" /> <h:outputText value="Soyad" /> <h:inputText value="#{
yazarlarGuncelleBean.yazarlar.yazarSoyadi
}" /> <h:commandButton value="Kaydet" action="#{
yazarlarGuncelleBean.yazarlarEkleme()
}" />
</h:panelGrid>
</h:form>
</h:body>
</html>
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:dataTable>
</h:body>
<h:outputLink value="YazarEkle.xhtml">
Yazar Ekle
</h:outputLink>
</html>
Ekran Goruntuleri ;
Secileni Duzenle linkine tiklanildiginda karsimiza YazarGuncelle.XHtml gelecektir. Asagida ki goruntude de dikkat edeceginiz gibi yazarid'sini veri tabanina
YazarGuncelle.xhtml?yazarid=18
seklinde gonderiyor.
Verilerimiz otomatik olarak karsimiza geliyor. Duzenlemeleri yapiyor ve kaydet butonuna tikliyoruz. Ve tekrar ana sayfamiz olan index.xhtml verileri guncellemis bir sekilde karsimiza gelmis oluyor.
Keyifli Calismalar Dilerim...
Yorumlar