/** * */ package br.com.cadastropessoal.dao; import java.sql.CallableStatement; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.List; import br.com.cadastropessoal.vo.UserVO; /** * @author Felipe * */ public class UserDAO { public UserDAO(){ } public long insertUser(UserVO userVO){ CallableStatement cs = null; Connection conn = null; long id = 0; DateFormat fmt = new SimpleDateFormat("dd/MM/yyyy"); try { conn = DatabaseManager.getConnection(); String strCmd = "{call sp_insert_user(?,?,?,?,?,?,?,?)}"; cs = conn.prepareCall(strCmd); //Setando paramentros para a SP cs.setString(1, userVO.getFirstName()); //FIRST_NAME IN cs.setString(2, userVO.getMiddleName()); //MIDDLE_NAME IN cs.setString(3, userVO.getLastName()); //LAST_NAME IN cs.setString(4, userVO.getCpf()); //CPF IN cs.setString(5, userVO.getEmail().toLowerCase()); //EMAIL IN cs.setString(6, userVO.getPassword()); //PASSWORD IN cs.setDate(7, new java.sql.Date(fmt.parse(userVO.getBirthDate()).getTime())); //BIRTH_DATE IN cs.registerOutParameter(8, java.sql.Types.NUMERIC); //USER_ID OUT //Executando a SP cs.execute(); //Obtendo o retorno da SP id = cs.getInt(8); } catch (SQLException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); }finally{ try { cs.close(); DatabaseManager.closeConnection(conn); } catch (SQLException e) { e.printStackTrace(); }catch (Exception e) { e.printStackTrace(); } } return id; } public UserVO findUserForSession(String email, String password){ PreparedStatement ps = null; Connection conn = null; ResultSet rs = null; UserVO userVO = null; try{ conn = DatabaseManager.getConnection(); String sql = " SELECT * FROM tb_user " + " WHERE lower(email) = ? " + " AND password = ? "; ps = conn.prepareStatement(sql); ps.setString(1, email.toLowerCase()); ps.setString(2, password); rs = ps.executeQuery(); if(rs.next()){ userVO = new UserVO(); userVO.setUserId(rs.getLong("USER_ID")); userVO.setFirstName(rs.getString("FIRST_NAME")); userVO.setMiddleName(rs.getString("MIDDLE_NAME")); userVO.setLastName(rs.getString("LAST_NAME")); userVO.setEmail(rs.getString("EMAIL").toLowerCase()); } }catch (SQLException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); }finally{ try { ps.close(); rs.close(); DatabaseManager.closeConnection(conn); } catch (SQLException e) { e.printStackTrace(); }catch (Exception e) { e.printStackTrace(); } } return userVO; } public List<UserVO> getAllUsers(){ PreparedStatement ps = null; Connection conn = null; ResultSet rs = null; UserVO userVO = null; List<UserVO> users = new ArrayList<UserVO>(); try{ conn = DatabaseManager.getConnection(); String sql = " SELECT * FROM tb_user "; ps = conn.prepareStatement(sql); rs = ps.executeQuery(); while(rs.next()){ userVO = new UserVO(); userVO.setUserId(rs.getLong("USER_ID")); userVO.setFirstName(rs.getString("FIRST_NAME")); userVO.setMiddleName(rs.getString("MIDDLE_NAME")); userVO.setLastName(rs.getString("LAST_NAME")); userVO.setEmail(rs.getString("EMAIL").toLowerCase()); userVO.setBirthDate(rs.getDate("BIRTH_DATE").toString()); userVO.setCpf(rs.getString("CPF")); userVO.setRegisterDate(rs.getDate("REGISTER_DATE").toString()); users.add(userVO); } }catch (SQLException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); }finally{ try { ps.close(); rs.close(); DatabaseManager.closeConnection(conn); } catch (SQLException e) { e.printStackTrace(); }catch (Exception e) { e.printStackTrace(); } } return users; } public boolean insertTel(long userId, String tel){ PreparedStatement ps = null; Connection conn = null; Boolean inserted = false; try{ conn = DatabaseManager.getConnection(); String sql = " INSERT INTO tb_telephone (TELEPHONE_ID,USER_ID,TELEPHONE) VALUES (seq_telephone.nextval,?,?) "; ps = conn.prepareStatement(sql); ps.setLong(1, userId); ps.setString(2, tel); System.out.println("USER ID -> " + userId); System.out.println("VAI INSERIR"); inserted = ps.execute(); System.out.println("INSERIOU? -> " + inserted); } catch (Exception e) { e.printStackTrace(); }finally{ try { DatabaseManager.closeConnection(conn); } catch (Exception e) { e.printStackTrace(); } } return inserted; } }