Galera, eu preciso de uma ajuda com a servlet que está dando erro e não sei como resolver
classes:
package dao;
import java.sql.*;
import java.util.ArrayList;
import model.Hospital;
import dao.ConnectionFactory;
public class HospitalDAO {
private Connection conBanco;
private PreparedStatement psComando;
private ResultSet rsRegistros;
public void configurarConexao(Connection conBanco) {
this.conBanco = conBanco;
}
public int criar(Hospital hospital) {
String sqlInsert = "INSERT INTO hospital(nome_hospital, senha_acesso, id_medico, cnpj, endereco, telefone, email_hospital, codigo_orgao) VALUES (?, ?, ?, ?, ?, ?, ?, ?)";
try (Connection conn = ConnectionFactory.abrirConexao();
PreparedStatement stm = conn.prepareStatement(sqlInsert);) {
stm.setString(1, hospital.getNomeHospital());
stm.setString(2, hospital.getSenhaAcesso());
stm.setString(3, hospital.getIdMedico());
stm.setString(4, hospital.getCNPJ());
stm.setString(5, hospital.getEndereco());
stm.setString(6, hospital.getTelefone());
stm.setString(7, hospital.getEmailHospital());
stm.setInt(8, hospital.getCodigoOrgao());
stm.execute();
String sqlQuery = "SELECT LAST_INSERT_ID()";
try (PreparedStatement stm2 = conn.prepareStatement(sqlQuery);
ResultSet rs = stm2.executeQuery();) {
if (rs.next()) {
hospital.setIdHospital(rs.getInt(1));
}
} catch (SQLException e) {
e.printStackTrace();
}
} catch (SQLException e) {
e.printStackTrace();
}
return hospital.getIdHospital();
}
public void atualizar(Hospital hospital) {
String sqlUpdate = "UPDATE hospital SET nome_hospital=?, senha_acesso=?, id_medico=?, cnpj=?, endereco=?, telefone=?, email_hospital=?, codigo_orgao=? WHERE id_hospital=?";
try (Connection conn = ConnectionFactory.abrirConexao();
PreparedStatement stm = conn.prepareStatement(sqlUpdate);) {
stm.setString(1, hospital.getNomeHospital());
stm.setString(2, hospital.getSenhaAcesso());
stm.setString(3, hospital.getIdMedico());
stm.setString(4, hospital.getCNPJ());
stm.setString(5, hospital.getEndereco());
stm.setString(6, hospital.getTelefone());
stm.setString(7, hospital.getEmailHospital());
stm.setInt(8, hospital.getCodigoOrgao());
stm.execute();
} catch (Exception e) {
e.printStackTrace();
}
}
public void excluir(int id_hospital) {
String sqlDelete = "DELETE FROM hospital WHERE id = ?";
try (Connection conn = ConnectionFactory.abrirConexao();
PreparedStatement stm = conn.prepareStatement(sqlDelete);) {
stm.setInt(1, id_hospital);
stm.execute();
} catch (Exception e) {
e.printStackTrace();
}
}
public Hospital carregar(int id_hospital) {
Hospital hospital = new Hospital();
hospital.setIdHospital(id_hospital);
String sqlSelect = "SELECT nome_hospital, senha_acesso, id_medico, cnpj, endereco, telefone, email_hospital, codigo_orgao FROM hospital WHERE hospital.id_hospital = ?";
try (Connection conn = ConnectionFactory.abrirConexao();
PreparedStatement stm = conn.prepareStatement(sqlSelect);) {
stm.setInt(1, hospital.getIdHospital());
try (ResultSet rs = stm.executeQuery();) {
if (rs.next()) {
hospital.setNomeHospital(rs.getString("nome_hospital"));
hospital.setSenhaAcesso(rs.getString("senha_acesso"));
hospital.setIdMedico(rs.getString("id_medico"));
hospital.setCNPJ(rs.getString("cnpj"));
hospital.setEndereco(rs.getString("endereço"));
hospital.setTelefone(rs.getString("telefone"));
hospital.setEmailHospital(rs.getString("email_hospital"));
hospital.setCodigoOrgao(rs.getInt("codigo_orgao"));
} else {
hospital.setIdHospital(-1);
hospital.setNomeHospital(null);
hospital.setSenhaAcesso(null);
hospital.setIdMedico(null);
hospital.setCNPJ(null);
hospital.setEndereco(null);
hospital.setTelefone(null);
hospital.setEmailHospital(null);
hospital.setCodigoOrgao(-1);
}
} catch (SQLException e) {
e.printStackTrace();
}
} catch (SQLException e1) {
System.out.print(e1.getStackTrace());
}
return hospital;
}
}
package dao;
import java.sql.*;
public class ConnectionFactory {
Connection conBanco;
static {
try {
Class.forName("com.mysql.cj.jdbc.Driver");
} catch (ClassNotFoundException e) {
throw new RuntimeException(e);
}
}
public static Connection abrirConexao() throws SQLException {
return DriverManager
.getConnection("jdbc:mysql://localhost:3306/clinica_medica?useTimezone=true&serverTimezone=America/Sao_Paulo&user=root&password=aqui eu apaguei pra postar");
}
public void fecharConexao() {
try {
conBanco.close();
}catch(SQLException erro) {
erro.printStackTrace();
}
}
public Connection obterConexao() {
return conBanco;
}
}
package controller;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;
import model.Hospital;
import dao.ConnectionFactory;
import dao.HospitalDAO;
@WebServlet("/CadastrarHospital.do")
public class InserirRegistro extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException
{
req.getRequestDispatcher("cadastro.html").forward(req, resp);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String stmIdHospital, stmNomeHospital, stmSenhaAcesso, stmCNPJ, stmEndereco, stmTelefone,
stmEmailHospital;
PrintWriter out;
stmIdHospital = request.getParameter("txtHospital");
stmSenhaAcesso = request.getParameter("txtSenhaAcesso");
if(request.getParameter("NomeHospital") != null)
stmNomeHospital = "S";
else
stmNomeHospital = "N";
if(request.getParameter("CNPJ") != null)
stmCNPJ = "S";
else
stmCNPJ = "N";
if(request.getParameter("Endereco") != null)
stmEndereco = "S";
else
stmEndereco = "N";
if(request.getParameter("Telefone") != null)
stmTelefone = "S";
else
stmTelefone = "N";
if(request.getParameter("EmailHospital") != null)
stmEmailHospital = "S";
else
stmEmailHospital = "N";
response.setContentType("text/html;charset=UTF-8");
out = response.getWriter();
out.println("<!DOCTYPE html>");
out.println("<html>");
out.println("<head>");
out.println("<link rel='stylesheet' type='text/css' href='menu.css'>");
try {
ConnectionFactory conn = new ConnectionFactory();
HospitalDAO hospital = new HospitalDAO ();
Hospital hospitais = new Hospital(1,
stmIdHospital,
stmNomeHospital,
stmSenhaAcesso,
stmCNPJ,
stmEndereco,
stmTelefone,
stmEmailHospital, 1);
if(conBanco.abrirConexao()) { (AQUI ESTÁ O ERRO)
hospital.configurarConexao(conn.obterConexao());
if(hospital.criar(Hospital)) { (AQUI ESTÁ O ERRO)
out.println("<h2>Hospital cadastrado com sucesso!!!</h2>");
out.println("<br><br><br><br>");
out.println("<a href='index.html'>Voltar ao menu inicial</a>");
}
else
out.println("<h2>Falha ao cadastrar hospital :( </h2>");
out.println("<a href='index.html'>Voltar ao menu inicial</a>");
conn.fecharConexao();
}
else
out.println("<h2>Falha ao se conectar com o banco de dados</h2>");
out.println("<a href='index.html'>Voltar ao menu inicial</a>");
}catch(Exception erro) {
erro.printStackTrace();
out.println("<h2>Erro do sistema: processo de cadastro de usuário!</h2>");
out.println("<a href='index.html'>Voltar ao menu inicial</a>");
}
out.println("</body>");
out.println("</html>");
}
}