12 Nisan 2015 Pazar

Spring Mvc + Güncelleme (Uptade) İşlemleri

       S.a. arkadaşlar,
       Bugün yine bir spring yazımız olacak inşaAllah. Dün projeyi düzenleyip çalışır hale getirdikten sonra saat geç olduğu için yazıyı bugün sabah dinç kafayla yazmaya karar verdim. Hep çalışmak isteyen arkadaşlar için de rahat kafayla çalışmak galiba daha iyi olacak. Bu yazımız belki de şuan için spring konumuzun son yazısı olabilir. Çünkü kafamızdaki işlemlerin hepsini şuan projede yaptık. Tabi bu yeterli değil, fakat en azından başlangıç yapacak arkadaşlar için küçük ama verimli bir seri olduğu kanaatindeyim. Umarım sizler de bu düşüncedesinizdir.



      Bugün ne yaptık peki? Bugün de ekleme,silme işlemlerinden sonra belki de sizlerin beklediği gibi güncelleme konusunu işleyeceğiz. (Güncelleme demişken aklıma bir arama,herhangi bir niteliğe göre sıralama tarzından bazı fikirler geldi. Onları da yaptıkça paylaşabilirim ama bu kısa vadede olmayabilir belki.) Burada silme işlemini yaptığımız sayfanın yanına bir de güncelleme işlemi ekledik ve linkimize tıklayınca o bilgiler karşımıza geliyor ve daha sonra güncelleyip tekrar kaydedebiliriz. Şimdi kodumuza yavaş yavaş geçelim. Daha önceki projelerimizin üzerinden gittiğimiz için tekrar hepsini değil de farklı olan yerleri ele almaya çalışacağız. Fakat projenin son halini de paylaşacağız. İsteyenler indirip onun üzerinden de işlem yapabilirler.

       UserController sayfasındaki uptade işlemi

//uptade
//tkladgmz ilgili linkin bilgilerine gider
@RequestMapping("/uptade/{name}/{surname}/{phone}/{id}")
public ModelAndView uptade(HttpServletRequest request, ModelMap model,
//PathVariable ve Request Parami daha önce aciklamstik
@PathVariable("id") Integer id,
@PathVariable("name") String name,
@PathVariable("surname") String surname,
@PathVariable("phone") String phone,
@RequestParam(value = "idNew", required = false)   Integer idNew,
@RequestParam(value = "name", required = false)   String nameNew,
@RequestParam(value = "surname", required = false)   String surnameNew,
@RequestParam(value = "phone", required = false)   String phoneNew
){

ArrayList<User> userList= new ArrayList<User>();
User user= new User();
try {
            Class.forName("com.mysql.jdbc.Driver");
            String url = "jdbc:mysql://localhost:3306/infonal";
            String kullaniciad = "root";
            String sifre = "";
            Connection con = null;
            Statement st = null;
            ResultSet rs = null;
            con = DriverManager.getConnection(url, kullaniciad, sifre);
            st = con.createStatement();
            //uptade islemini yapyoruz. id primer key oldugu icin buna göre yapyoruz
            String query = "update user set   name= ? , surname= ? , phone=?   where id=? ";
            PreparedStatement preparedStmt = (PreparedStatement) con.prepareStatement(query);
         
            preparedStmt.setString (1, nameNew);
            preparedStmt.setString (2, surnameNew);
            preparedStmt.setString (3,phoneNew );
            preparedStmt.setInt (4, id);
            //bu sra önemli dikkat etmekte fayda. Siradan kasit numaralar onu karstrmayalm
            preparedStmt.executeUpdate();
       
         
        } catch (ClassNotFoundException ex) {
            ex.printStackTrace();      
           System.out.println("Surucu projeye eklenmemis!");
        } catch (SQLException ex) {
            ex.printStackTrace();
          System.out.println("Veritabanina baglanti saglanamadi!");
        }

ModelAndView mvr = new ModelAndView("uptade");
        mvr.addObject("name",name);
        mvr.addObject("id",id);
        mvr.addObject("idNew",idNew);
        mvr.addObject("nameNew", nameNew);
        mvr.addObject("surnameNew", surnameNew);
        mvr.addObject("phoneNew", phoneNew);
mvr.addObject("surname",surname);
mvr.addObject("phone",phone);
mvr.addObject("userList",userList);

return mvr;

}

       Aslında bakılırsa tüm kodu verme fikrinde değiliz, fakat kararsız kaldık bazen tüm kodu vermek de iyi olabilir. O nedenle hepsini buraya yapıştırdık. Diğer yazılarımızda bunların çoğunu açıklamıştık zaten, fakat farklı olan yerler yine yorum satırlarıyla desteklendi. Jsp sayfamız da kisi kaydetme işlemi ile çok benzer olduğu için onu tekrardan vermeyeceğiz. Şimdi ise çıktılar üzerinden biraz konuşursak aklımızda bazı şeyler daha iyi oturur düşüncesindeyiz.


Resim-1
       Listeleme sayfamızı hatırlarsınız bunun yanına bir de Edit linki koyduk. Buraya tıkladığımız ilgili kişinin bilgileri yeni açılan sayfamıza gidecektir.

Resim-2
      Burada artık uptade sayfamıza geldik. Link kısmına dikkat edin şahsın tüm bilgileri orada mevcut ve bilgiler inputa otomatik olarak gelmektedir.

Resim-3
      Burada tekrardan kontrollerimizi yazmış bulunmaktayız. Aynı hataları diğer kısımlar için de verecektir.

Resim-4
     Burada ise Spring Mvc yerine Jsf deyip Submit butonumuza basıyoruz ve işlemimizin başarılı olduğunu söyleyen pop up'a tamam deyip tekrardan bizi list sayfamıza gönderiyor.

Resim-5
      Son olarak da artık Spring Mvc yerine Jsf olarak veritabanımıza kaydetmiş bulunuyoruz.
      Proje Linki

Hiç yorum yok:

Yorum Gönder