Sunday 12 December 2010

Login (Spring + JPA)

Tahapan tahapan untuk membuat form login dengan menggunakan Spring dan JPA (Toplink)
1. Buat Project seperti sini atau dapat di download di Source
2. Buat table seperti berikut

CREATE TABLE `login` (
  `user` varchar(255) NOT NULL,
  `password` varchar(255) NOT NULL,
  `user_update` varchar(255) NOT NULL,
  `time_update` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`user`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1




3. Cek librari cari MYSQL kalau belum ada tambahkan. caranya disini
4. Buat koneksi netbean ke database Sini
5. Buat Persistence seperti ini
6. Buat pakage id.co.myapp.entity dan id.co.myapp.entityManager caranya
7. Klik kanan pada pakage id.co.myapp.entity pilih entity from database







8. buat class LoginManager (untuk operasi database)

LoginManager.java:


package id.co.myapp.entityManager;

import id.co.myapp.entity.Login;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;

/**
 *
 * @author mugi22
 */
public class LoginManager {
    private EntityManager em;

    //constructor
    public LoginManager() {
    }
    public LoginManager(EntityManagerFactory emf) {
        em = emf.createEntityManager();
    }


    //Operasi Table

    public void addLogin(Login login) {
            em.getTransaction().begin();
            em.persist(login);
            em.getTransaction().commit();
        }

    public void updateLogin(Login login) {
            em.getTransaction().begin();
            em.merge(login);
            em.getTransaction().commit();
        }
    public void deleteLogin(Login login) {
            em.getTransaction().begin();
            em.remove(login);
            em.getTransaction().commit();
        }

    public List findAll(Login login) {
            em.getTransaction().begin();
            List<Login> loginList =  em.createQuery("select c from Login c").getResultList();
            return loginList;
        }
}


9. buka class loginController yang ada pada pakage id.co.myapp.controller
edit seperti ini:
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package id.co.myapp.controller;

import id.co.myapp.domain.userLogin;
import id.co.myapp.entity.Login;
import id.co.myapp.entityManager.LoginManager;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

/**
 *
 * @author mugi22
 */
@Controller
@RequestMapping("/login.htm")
public class loginController {
    private EntityManagerFactory emf;
    private EntityManager em;
    private String PERSISTENCE_UNIT_NAME = "SpringWebJDBCPU";
    private LoginManager loginManager;





    //bila halaman login di panggil
    @RequestMapping(method=RequestMethod.GET)
    public void loginPage(){
       
    }

    //proses halaman login
    @RequestMapping(method=RequestMethod.POST)
    public String loginProses(@ModelAttribute("userLogin")userLogin userLogin){
        //System.out.println("User Login   :  "+userLogin.getUserLogin());
        //System.out.println("User Password   :  "+userLogin.getPasswordLogin());
        //cek login
        if (userLogin.getUserLogin().equals("mugi") && userLogin.getPasswordLogin().equals("qwerty")){
            emf = Persistence.createEntityManagerFactory(PERSISTENCE_UNIT_NAME);
            em = emf.createEntityManager();
            loginManager = new LoginManager(emf);
            em.getTransaction().begin(); //buka koneksi
            List<Login> loginList = loginManager.findAll();
            for (Login login : loginList) {
                System.out.println("user  : "+login.getUser());
                System.out.println("password  : "+login.getPassword());
                System.out.println("Tanggal   : "+login.getTimeUpdate());
            }

            //pakai NAmaedQuery

            loginList = em.createNamedQuery("Login.findByUser")
                        .setParameter("user", "mugi").getResultList();

            for (Login login : loginList) {
                System.out.println("user222  : "+login.getUser());
                System.out.println("password222  : "+login.getPassword());
                System.out.println("Tanggal222   : "+login.getTimeUpdate());
            }
            em.close();
            emf.close();



            return "loginSukses";
        } else{
            return "loginGagal";
        }

    }
}

10. jalankan aplikasi




No comments:

Post a Comment