Galera, eu criei um sistema que utiliza um login (que seria cada um loga com sua session) e cadastro um médico, como que eu faço pra listar só os médicos do meu hospital( que seria a session logada) ao invés de listar todos os médicos de todos os hospitais que cadastraram seus médicos?
Pacote dao
package dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import model.Medico;
public class MedicoDAO {
public int criar(Medico medico) {
String sqlInsert = “INSERT INTO medico(id_hospital, nome, crm, cpf) VALUES (?, ?, ?, ?)”;
try (Connection conn = ConnectionFactory.abrirConexao();
PreparedStatement stm = conn.prepareStatement(sqlInsert);) {
stm.setInt(1, medico.getIdHospital());
stm.setString(2, medico.getNome());
stm.setString(3, medico.getCRM());
stm.setString(4, medico.getCPF());
stm.execute();
String sqlQuery = "SELECT LAST_INSERT_ID()";
try (PreparedStatement stm2 = conn.prepareStatement(sqlQuery);
ResultSet rs = stm2.executeQuery();) {
if (rs.next()) {
medico.setIdMedico(rs.getInt(1));
}
} catch (SQLException e) {
e.printStackTrace();
}
} catch (SQLException e) {
e.printStackTrace();
}
return medico.getIdMedico();
}
public void atualizar(Medico medico) {
String sqlUpdate = "UPDATE medico SET nome=?, crm=?, cpf=? WHERE id_medico=?";
try (Connection conn = ConnectionFactory.abrirConexao();
PreparedStatement stm = conn.prepareStatement(sqlUpdate);) {
stm.setInt(1, medico.getIdHospital());
stm.setString(2, medico.getNome());
stm.setString(3, medico.getCRM());
stm.setString(4, medico.getCPF());
stm.setInt(5, medico.getIdMedico());
stm.execute();
} catch (Exception e) {
e.printStackTrace();
}
}
public void excluir(int id_medico) {
String sqlDelete = "DELETE FROM medico WHERE id_medico = ?";
// usando o try with resources do Java 7, que fecha o que abriu
try (Connection conn = ConnectionFactory.abrirConexao();
PreparedStatement stm = conn.prepareStatement(sqlDelete);) {
stm.setInt(1, id_medico);
stm.execute();
} catch (Exception e) {
e.printStackTrace();
}
}
public Medico carregar(int id_medico) {
Medico medico = new Medico();
medico.setIdMedico(id_medico);
String sqlSelect = "SELECT id_hospital, nome, crm, cpf FROM medico WHERE medico.id_hospital = ?";
// usando o try with resources do Java 7, que fecha o que abriu
try (Connection conn = ConnectionFactory.abrirConexao();
PreparedStatement stm = conn.prepareStatement(sqlSelect);) {
stm.setInt(1, medico.getIdMedico());
try (ResultSet rs = stm.executeQuery();) {
if (rs.next()) {
medico.setIdHospital(rs.getInt("id_hospital"));
medico.setNome(rs.getString("nome"));
medico.setCRM(rs.getString("crm"));
medico.setCPF(rs.getString("cpf"));
} else {
medico.setIdMedico(-1);
medico.setIdHospital(-1);
medico.setNome(null);
medico.setCRM(null);
medico.setCPF(null);
}
} catch (SQLException e) {
e.printStackTrace();
}
} catch (SQLException e1) {
System.out.print(e1.getStackTrace());
}
return medico;
}
public ArrayList<Medico> listarMedicos() {
Medico medico;
ArrayList<Medico> listaMedico = new ArrayList<>();
String sqlSelect = "SELECT id_medico, id_hospital, nome, crm, cpf FROM medico";
// usando o try with resources do Java 7, que fecha o que abriu
try (Connection conn = ConnectionFactory.abrirConexao();
PreparedStatement stm = conn.prepareStatement(sqlSelect);) {
try (ResultSet rs = stm.executeQuery();) {
while (rs.next()) {
medico = new Medico();
medico.setIdMedico(rs.getInt("id_medico"));
medico.setIdHospital(rs.getInt("id_hospital"));
medico.setNome(rs.getString("nome"));
medico.setCRM(rs.getString("crm"));
medico.setCPF(rs.getString("cpf"));
listaMedico.add(medico);
}
} catch (SQLException e) {
e.printStackTrace();
}
} catch (SQLException e1) {
System.out.print(e1.getStackTrace());
}
return listaMedico;
}
public ArrayList<Medico> listarMedicos(String chave) {
Medico medico;
ArrayList<Medico> listaMedico = new ArrayList<>();
String sqlSelect = "SELECT id_medico, id_hospital, nome, crm, cpf FROM medico where upper(nome) like ?";
try (Connection conn = ConnectionFactory.abrirConexao();
PreparedStatement stm = conn.prepareStatement(sqlSelect);) {
stm.setString(1, "%" + chave.toUpperCase() + "%");
try (ResultSet rs = stm.executeQuery();) {
while (rs.next()) {
medico = new Medico();
medico.setIdMedico(rs.getInt("id_medico"));
medico.setIdHospital(rs.getInt("id_hospital"));
medico.setNome(rs.getString("nome"));
medico.setCRM(rs.getString("crm"));
medico.setCPF(rs.getString("cpf"));
listaMedico.add(medico);
}
} catch (SQLException e) {
e.printStackTrace();
}
} catch (SQLException e1) {
System.out.print(e1.getStackTrace());
}
return listaMedico;
}
}
Pacote command
package command;
import java.io.IOException;
import java.util.ArrayList;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import model.Medico;
import service.MedicoArrayService;
public class ListarMedicoBuscar implements Command {
@Override
public void executar(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
String chave = request.getParameter("data[search]");
MedicoArrayService medicoArray = new MedicoArrayService();
ArrayList<Medico> listaMedico = null;
HttpSession session = request.getSession();
if (chave != null && chave.length() > 0) {
listaMedico = medicoArray.listarMedicos(chave);
} else {
listaMedico = medicoArray.listarMedicos();
}
session.setAttribute("listaMedico", listaMedico);
RequestDispatcher dispatcher = request
.getRequestDispatcher("ListarMedico.jsp");
dispatcher.forward(request, response);
}
}
package command;
import java.io.IOException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
public class ListarMedicoReiniciar implements Command {
@Override
public void executar(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
HttpSession session = request.getSession();
session.setAttribute("listaMedico", null);
RequestDispatcher dispatcher = request
.getRequestDispatcher("ListarMedico.jsp");
dispatcher.forward(request, response);
}
}
JSP
<c:if test="${not empty listaMedico}">
<div class="table-responsive col-md-12">
<table class="table table-striped" cellspacing="0" cellpadding="0">
<thead>
<tr>
<th>ID</th>
<th>Nome</th>
<th>CRM</th>
<th>CPF</th>
<th class="actions">Ações</th>
</tr>
</thead>
<tbody>
<c:forEach var="medico" items="${listaMedico }">
<tr>
<td>
${medico.idMedico }
</td>
<td>
${medico.nome }
</td>
<td>
${medico.CRM }
</td>
<td>
${medico.CPF }
</td>
<td class="actions">
<a class="btn btn-success btn-xs" href="controller.do?command=VisualizarMedico&id=${medico.idMedico }">Visualizar</a>
<a class="btn btn-warning btn-xs" href="controller.do?command=EditarMedico&id=${medico.idMedico }">Editar</a>
<button id="btn${medico.idMedico }%>" type="button" class="btn btn-danger btn-xs" data-toggle="modal" data-target="#delete-modal" data-medico="${medico.idMedico }">Excluir</button>
</td>
</tr>
</c:forEach>
</tbody>
</table>
</div>
</div>
</c:if>