mupomat.controller.ObradaKorisnik.java Source code

Java tutorial

Introduction

Here is the source code for mupomat.controller.ObradaKorisnik.java

Source

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package mupomat.controller;

import java.io.FileNotFoundException;
import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import mupomat.model.Korisnik;
import mupomat.utility.MySqlBazaPodataka;
import org.apache.commons.codec.digest.DigestUtils;

/**
 *
 * @author SrKy
 */
public class ObradaKorisnik extends Obrada<Korisnik> {

    @Override
    public Korisnik dodajNovi(Korisnik entitet) {

        try {
            Connection veza = MySqlBazaPodataka.getConnection();

            veza.setAutoCommit(false);

            PreparedStatement izraz = veza
                    .prepareStatement("insert into osoba (oib,ime,prezime,email) values (?,?,?,?)");
            izraz.setString(1, entitet.getOib());
            izraz.setString(2, entitet.getIme());
            izraz.setString(3, entitet.getPrezime());
            izraz.setString(4, entitet.getEmail());
            izraz.executeUpdate();

            izraz = veza.prepareStatement(
                    "insert into korisnik (oib,automat,datumregistracije,korisnickoime,lozinka,uloga,aktivan) values (?,?,now(),?,?,?,?)",
                    Statement.RETURN_GENERATED_KEYS);
            izraz.setString(1, entitet.getOib());
            izraz.setString(2, entitet.getAutomat());
            izraz.setString(3, entitet.getKorisnickoIme());
            izraz.setString(4, DigestUtils.md5Hex(entitet.getLozinka()));
            izraz.setString(5, entitet.getUloga());
            izraz.setBoolean(6, entitet.isAktivan());
            izraz.executeUpdate();

            ResultSet rs = izraz.getGeneratedKeys();
            rs.next();
            entitet.setSifra(rs.getInt(1));

            izraz.close();
            veza.commit();
            veza.close();

        } catch (Exception e) {
            System.out.println(e.getMessage());
            e.printStackTrace();
            return null;
        }

        return entitet;
    }

    @Override
    public void promjeniPostojeci(Korisnik entitet) {
        try {
            Connection veza = MySqlBazaPodataka.getConnection();

            PreparedStatement izraz = veza.prepareStatement("update korisnik set aktivan=0 where sifra=?");

            izraz.setInt(1, entitet.getSifra());
            izraz.executeUpdate();

            izraz.close();

            veza.close();
        } catch (Exception e) {
            //  System.out.println(e.getMessage());
            e.printStackTrace();

        }
    }

    @Override
    public void obrisiPostojeci(Korisnik entitet) throws SQLException {
        try {
            Connection veza = MySqlBazaPodataka.getConnection();

            veza.setAutoCommit(false);

            PreparedStatement izraz = veza.prepareStatement("delete from korisnik where sifra=?");

            izraz.setInt(1, entitet.getSifra());
            izraz.executeUpdate();

            izraz = veza.prepareStatement("delete from osoba  where oib=?");

            izraz.setString(1, entitet.getOib());
            izraz.executeUpdate();

            izraz.close();

            veza.commit();
            veza.close();
        } catch (ClassNotFoundException | IOException e) {
            //  System.out.println(e.getMessage());
            e.printStackTrace();

        }
    }

    @Override
    public List<Korisnik> dohvatiIzBaze(String uvjet) {
        List<Korisnik> lista = new ArrayList<>();
        try {
            Connection veza = MySqlBazaPodataka.getConnection();
            PreparedStatement izraz = veza.prepareStatement(
                    "select a.sifra,a.datumregistracije,a.korisnickoime,a.uloga,a.aktivan, b.* from korisnik a inner join osoba b on a.oib=b.oib where b.ime like  ? and aktivan=1");
            izraz.setString(1, "%" + uvjet + "%");
            //            izraz.setString(2, "%" + uvjet + "%");

            ResultSet rs = izraz.executeQuery();
            Korisnik entitet = null;
            while (rs.next()) {
                //System.out.println("evo me");
                entitet = new Korisnik();
                entitet.setSifra(rs.getInt("sifra"));
                entitet.setIme(rs.getString("ime"));
                entitet.setPrezime(rs.getString("prezime"));
                entitet.setOib(rs.getString("oib"));
                entitet.setEmail(rs.getString("email"));
                entitet.setDatumRegistracije(new Date(rs.getTimestamp("datumregistracije").getTime()));
                entitet.setKorisnickoIme(rs.getString("korisnickoime"));
                entitet.setUloga(rs.getString("uloga"));
                entitet.setAktivan(rs.getBoolean("aktivan"));

                lista.add(entitet);

            }
            rs.close();
            izraz.close();
            veza.close();
        } catch (Exception e) {

            e.printStackTrace();
            return null;
        }

        return lista;
    }

    public Korisnik prijaviKorisnika(String korisnickoIme, String lozinka)
            throws FileNotFoundException, ClassNotFoundException, IOException, SQLException {

        Korisnik korisnik;
        try (Connection veza = MySqlBazaPodataka.getConnection()) {
            PreparedStatement izraz = veza.prepareStatement(
                    "select * from korisnik where korisnickoime=? and lozinka=? and uloga like 'korisnik' and aktivan=1");
            izraz.setString(1, korisnickoIme);
            izraz.setString(2, DigestUtils.md5Hex(lozinka));
            ResultSet rs = izraz.executeQuery();
            korisnik = null;
            while (rs.next()) {
                korisnik = new Korisnik();
                korisnik.setKorisnickoIme(korisnickoIme);
                korisnik.setLozinka(lozinka);
                korisnik.setUloga(rs.getString("uloga"));
            }
            rs.close();
            izraz.close();
            veza.close();
        }
        return korisnik;
    }

    public List<Korisnik> dohvatiNeaktivnogKorisnika(String uvjet) {
        List<Korisnik> lista = new ArrayList<>();
        try {
            Connection veza = MySqlBazaPodataka.getConnection();
            PreparedStatement izraz = veza.prepareStatement(
                    "select a.sifra,a.datumregistracije,a.korisnickoime,a.uloga,a.aktivan, b.* from korisnik a inner join osoba b on a.oib=b.oib where b.ime like  ? and aktivan=0");
            izraz.setString(1, "%" + uvjet + "%");
            //            izraz.setString(2, "%" + uvjet + "%");

            ResultSet rs = izraz.executeQuery();
            Korisnik entitet = null;
            while (rs.next()) {
                //System.out.println("evo me");
                entitet = new Korisnik();
                entitet.setSifra(rs.getInt("sifra"));
                entitet.setIme(rs.getString("ime"));
                entitet.setPrezime(rs.getString("prezime"));
                entitet.setOib(rs.getString("oib"));
                entitet.setEmail(rs.getString("email"));
                entitet.setDatumRegistracije(new Date(rs.getTimestamp("datumregistracije").getTime()));
                entitet.setKorisnickoIme(rs.getString("korisnickoime"));
                entitet.setUloga(rs.getString("uloga"));
                entitet.setAktivan(rs.getBoolean("aktivan"));

                lista.add(entitet);

            }
            rs.close();
            izraz.close();
            veza.close();
        } catch (Exception e) {

            e.printStackTrace();
            return null;
        }

        return lista;
    }

    public void aktivirajPostojeci(Korisnik entitet) {
        try {
            Connection veza = MySqlBazaPodataka.getConnection();

            PreparedStatement izraz = veza.prepareStatement("update korisnik set aktivan=1 where sifra=?");

            izraz.setInt(1, entitet.getSifra());
            izraz.executeUpdate();

            izraz.close();

            veza.close();
        } catch (Exception e) {
            //  System.out.println(e.getMessage());
            e.printStackTrace();

        }
    }

    public Korisnik dohvatiKorisnikaPoKorisnickomImenu(String korisnik) {
        Korisnik k = null;
        try {
            Connection veza = MySqlBazaPodataka.getConnection();
            PreparedStatement izraz = veza.prepareStatement("select * from korisnik where korisnickoime = ?");
            izraz.setString(1, korisnik);

            ResultSet rs = izraz.executeQuery();

            while (rs.next()) {
                //System.out.println("evo me");
                k = new Korisnik();
                k.setSifra(rs.getInt("sifra"));
                k.setKorisnickoIme(rs.getString("korisnickoime"));
                k.setUloga(rs.getString("uloga"));

            }
            rs.close();
            izraz.close();
            veza.close();
        } catch (Exception e) {
            //  System.out.println(e.getMessage());
            e.printStackTrace();
            return null;
        }

        return k;

    }

    public List<Korisnik> dohvatiKorisnickoImeILozinkuPoEmailu(String email) {
        List<Korisnik> lista = new ArrayList<>();
        try {
            Connection veza = MySqlBazaPodataka.getConnection();
            PreparedStatement izraz = veza.prepareStatement(
                    "select a.korisnickoime, a.lozinka from korisnik a inner join osoba b on a.oib = b.oib where b.email = ?");
            izraz.setString(1, email);

            ResultSet rs = izraz.executeQuery();
            Korisnik k = null;
            while (rs.next()) {
                //System.out.println("evo me");
                k = new Korisnik();
                //k.setSifra(rs.getInt("sifra"));
                k.setKorisnickoIme(rs.getString("korisnickoime"));
                k.setLozinka(rs.getString("lozinka"));
                lista.add(k);

            }
            rs.close();
            izraz.close();
            veza.close();
        } catch (Exception e) {
            //  System.out.println(e.getMessage());
            e.printStackTrace();
            return null;
        }

        return lista;

    }

    public void promjeniPostojecuLozinku(String lozinka, String email) {
        try {
            Connection veza = MySqlBazaPodataka.getConnection();

            PreparedStatement izraz = veza.prepareStatement(
                    "update korisnik a, osoba b set a.lozinka=? where a.oib = b.oib and b.email=?");

            izraz.setString(1, DigestUtils.md5Hex(lozinka));
            izraz.setString(2, email);
            izraz.executeUpdate();

            izraz.close();

            veza.close();
        } catch (Exception e) {
            //  System.out.println(e.getMessage());
            e.printStackTrace();

        }
    }

    public boolean provjeraEmaila(String email) {

        try {
            Connection veza = MySqlBazaPodataka.getConnection();
            PreparedStatement izraz = veza.prepareStatement("select * from osoba where email=?");
            izraz.setString(1, email);

            ResultSet rs = izraz.executeQuery();
            boolean postoji = false;
            while (rs.next()) {
                postoji = true;
            }
            rs.close();
            izraz.close();
            veza.close();
            return !postoji;
        } catch (Exception e) {
            //  System.out.println(e.getMessage());
            e.printStackTrace();
            return false;
        }

    }

    public void postaviNovuLozinku(String lozinka, String korisnickoIme) {
        try {
            Connection veza = MySqlBazaPodataka.getConnection();

            PreparedStatement izraz = veza.prepareStatement("update korisnik set lozinka=? where korisnickoime=?");

            izraz.setString(1, DigestUtils.md5Hex(lozinka));
            izraz.setString(2, korisnickoIme);

            izraz.executeUpdate();

            izraz.close();

            veza.close();
        } catch (Exception e) {
            //  System.out.println(e.getMessage());
            e.printStackTrace();

        }
    }

    public Korisnik dohvatiKorisnikaPoOibu(String oib) {
        Korisnik k = null;
        try {
            Connection veza = MySqlBazaPodataka.getConnection();
            PreparedStatement izraz = veza.prepareStatement("select * from korisnik where oib = ?");
            izraz.setString(1, oib);

            ResultSet rs = izraz.executeQuery();

            while (rs.next()) {
                //System.out.println("evo me");
                k = new Korisnik();
                k.setSifra(rs.getInt("sifra"));
                k.setOib(rs.getString("oib"));
                k.setUloga(rs.getString("uloga"));

            }
            rs.close();
            izraz.close();
            veza.close();
        } catch (Exception e) {
            //  System.out.println(e.getMessage());
            e.printStackTrace();
            return null;
        }

        return k;

    }
}