10 Şubat 2013 Pazar

JSTL SQL TAG İLE JSP SAYFALARINDA VERİTABANI İŞLEMLERİ


Öncelikle  şunu belirtelim ki JSTL SQL taglari kullanarak yapacağımız veritabanı işlemlerini Javabeanler ile ya da Servlet tarafında yapabiliriz. Fakat JSTL taglari her anlamda işimizi kolaylaştırır. Özellikle de JSTL Core tags. Önümüz deki yazılarımızda bu JSTL taglarinden bahsetmeye devam edeceğiz. JSTL (Java Standart Tag Library) nin kısaltmasıdır.
Şimdi gelelim JSTL sql taglarini kullanarak veritabanı işlemlerine. Veritabanında aslında güncelleme ve sorgulama dışında başka bir sorgu tipi yoktur. Ekleme ,silme ve güncelleme (INSERT,DELETE ve UPDATE) veritabanında güncelleme sorgu grubuna girip Javada yapılırken executeUpdate() kullanılır. Veritabanında var olan verileri çekmek için ise executeQuery() metodunu kullanıyorduk.
Şimdi bu 3 temel işlemi bir de JSP tarafında yapalım.
JSP sayfalarında bu JSTL taglarini kullanmak için JSTL 1.1 kütüphanesini eklememiz lazım. Daha sonra sql taglarini kullanabilmek için aşağıda ki kodu en başa yazmamız gerekir.
<%@taglib  uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %>
 Daha sonra her sql tag kullanacağımız sayfa da bulunması gereken kod parçası ise şudur ki bu kod ile MySql bağlantısı kurabilmek için gerekli olan bağlantı bilgilerini ihtiva eder.
<sql:setDataSource var="dataSource" driver="org.gjt.mm.mysql.Driver"
                   url="jdbc:mysql://localhost:3307"
                   user="root"
                   password="root"
                   scope="session" />
Şimdi kabul edelim ki elimizde  bir HTML formu var ve o HTML formunda da isimleri soyadi   ,adi ve tel olan 3 tane de veri bulunsun.

INSERT İŞLEMİ
<sql:update var="veri" dataSource="${dataSource}">
        INSERT INTO test.tel_rehberi (ad,soyad,no)
        VALUES (?,?,?)

        <sql:param value="${param.adi}" />
        <sql:param value="${param.soyadi}" />
        <sql:param value="${param.tel}" />

    </sql:update>

    <c:if test="${veri>=1}">
        <c:out value="${param.adi} ${param.soyadi} kaydedildi."></c:out>
        <a href="index.jsp">Kayit sayfasina donmek icin tiklayiniz...</a>
    </c:if>

DELETE İŞLEMİ
<sql:update var="veri" dataSource="${dataSource}">
        DELETE FROM test.tel_rehberi WHERE ad=? AND
        soyad=?
        <sql:param value="${param.adi}"/>
        <sql:param value="${param.soyadi}"/>       
    </sql:update>
       
    <c:if test="${veri>=1}">
        <c:out value="${param.adi} ${param.soyadi} silindi."></c:out>
        <a href="index.jsp">Kayit sayfasina donmek icin tiklayiniz...</a>
    </c:if>