O projeto é outro mas o princípio lógico estou seguindo o mesmo.
Estou mandando abaixo o que tenho, para que se possível me ajudem.
SgrDao.java
package br.com.fiabilite.dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import br.com.fiabilite.bean.Sgr;
public class SgrDao {
private Connection cnn;
public SgrDao(Connection cnn) {
this.cnn = cnn;
}
// insere sgr
public void InsereSgr(Sgr sgr){
try {
String sql = "INSERT INTO tbl_sgr " + "(sgr_localizacao)" + " values (?)";
PreparedStatement ps = cnn.prepareStatement(sql);
ps.setString(1, sgr.getSgr_localizacao());
ps.execute();
} catch (Exception e) {
// mensagem de erro para o usuário
throw new RuntimeException(e);
}
}
// cria um array
public List<Sgr> getLista() throws SQLException {
try {
List<Sgr> sgrs = new ArrayList<>();
PreparedStatement ps = this.cnn.prepareStatement("SELECT * FROM tbl_sgr");
ResultSet rs = ps.executeQuery();
while (rs.next()) {
// criando o obj sgr
Sgr sgr = new Sgr();
sgr.setSgr_id(rs.getLong("sgr_id"));
sgr.setSgr_localizacao(rs.getString("sgr_localizacao"));
// adicionando o objeto à lista
sgrs.add(sgr);
}
rs.close();
ps.close();
return sgrs;
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
// alterar registro
public void altera(Sgr sgr) {
String sql = "UPDATE tbl_sgr set sgr_localizacao=? WHERE sgr_id=?";
try {
PreparedStatement ps = cnn.prepareStatement(sql);
ps.setString(1, sgr.getSgr_localizacao());
ps.setLong(2, sgr.getSgr_id());
ps.execute();
ps.close();
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
// remove registro
public void remove(Sgr sgr) {
try {
PreparedStatement ps = cnn.prepareStatement("DELETE FROM contatos WHERE id=?");
ps.setLong(1, sgr.getSgr_id());
ps.execute();
ps.close();
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
}
AdicionaSgrLogic.java
package br.com.fiabilite.logica;
import java.sql.Connection;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import br.com.fiabilite.bean.Sgr;
import br.com.fiabilite.dao.SgrDao;
public class AdicionaSgrLogic implements Logica {
public String executa(HttpServletRequest req, HttpServletResponse res) throws Exception{
Connection cnn = (Connection) req.getAttribute("cnn");
//buscando os parâmetros no request
String local = req.getParameter("sgr_localizacao");
// monta um objeto Sgr
Sgr sgr = new Sgr();
sgr.setSgr_localizacao(local);
// salva a Sgr
SgrDao dao = new SgrDao(cnn);
dao.InsereSgr(sgr);
return "mvc?logica=ListaContatosLogic";
}
}
ERRO
HTTP Status 500 – Internal Server Error
Type Exception Report
Message A lógica de negócios causou uma exceção
Description The server encountered an unexpected condition that prevented it from fulfilling the request.
Exception
javax.servlet.ServletException: A lógica de negócios causou uma exceção
br.com.fiabilite.servlet.ControllerServlet.service(ControllerServlet.java:31)
javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
Root Cause
java.lang.RuntimeException: java.lang.NullPointerException
br.com.fiabilite.dao.SgrDao.InsereSgr(SgrDao.java:33)
br.com.fiabilite.logica.AdicionaSgrLogic.executa(AdicionaSgrLogic.java:25)
br.com.fiabilite.servlet.ControllerServlet.service(ControllerServlet.java:26)
javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
Root Cause
java.lang.NullPointerException
br.com.fiabilite.dao.SgrDao.InsereSgr(SgrDao.java:25)
br.com.fiabilite.logica.AdicionaSgrLogic.executa(AdicionaSgrLogic.java:25)
br.com.fiabilite.servlet.ControllerServlet.service(ControllerServlet.java:26)
javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
Note The full stack trace of the root cause is available in the server logs.
Apache Tomcat/8.5.24