Tô quebrando a cabeça há uns dias e preciso de ajuda. Tenho um jmenuItem em menu principal onde eu coloquei a função de fechar caixa. Essa função resgata o último id no banco e seta algumas informações para o fechamento de caixa. O problema é que ao tentar recuperar as informações como o último status do caixa 0 e 1, ele retorna sempre 0. Se eu faço a consulta por meio de getPk_Caixa, ele retorna o valor certo do caixa, porém se eu faço o mesmo com os outros campos, retorna zero ou nulo. Obs: ele tá fazendo o set certinho. O problema é buscar o valor pra fazer um if no status 0 ou 1. E também não retorna nenhum erro.
viewPrincipal
private void jMenuItem11ActionPerformed(java.awt.event.ActionEvent evt) {
//Fechar CAIXA
JOptionPane.showConfirmDialog(null, "Deseja mesmo Fechar o caixa?");
//recuperar id insert no ultimo registro caixa
ModelCaixa model = controllerCaixa.getUltimoIdController(modelCaixa);
if(model.getStatus_caixa() > 0) {
//data_fechamento
LocalDate local = LocalDate.now();
java.sql.Date sqlDate2 = java.sql.Date.valueOf(local);
model.setData_fechamento(sqlDate2);
//salvar no banco
boolean codigoVenda;
codigoVenda = controllerCaixa.atualizarCaixaController(model);
if (codigoVenda == true) {
JOptionPane.showMessageDialog(this, "Caixa Fechado com sucesso");
} else {
JOptionPane.showMessageDialog(this, "Erro ao fechar o caixa", "Erro", JOptionPane.ERROR_MESSAGE);
}
} else {
//o if corre direto pra cá!
JOptionPane.showMessageDialog(this, "Não há caixa aberto para fechar", "Erro", JOptionPane.ERROR_MESSAGE);
}
}
Classe ModelCaixa
package model;
import static java.sql.JDBCType.VARCHAR;
import java.time.LocalDate;
import java.util.Date;
public class ModelCaixa {
private int pk_caixa;
private int fk_funcionario;
private String hora_abertura;
private Date data_abertura;
private float valor_abertura;
private int status_caixa;
private float total_Movimentacoes;
private float caixa_sangria;
private String hora_fechamento;
private Date data_fechamento;
public ModelCaixa(){}
/**
* seta o valor de pk_caixa
* @param pPk_caixa
*/
public void setPk_caixa(int pPk_caixa){
this.pk_caixa = pPk_caixa;
}
/**
* @return pk_pk_caixa
*/
public int getPk_caixa(){
return this.pk_caixa;
}
/**
* seta o valor de fk_funcionario
* @param pFk_funcionario
*/
public void setFk_funcionario(int pFk_funcionario){
this.fk_funcionario = pFk_funcionario;
}
/**
* @return fk_fk_funcionario
*/
public int getFk_funcionario(){
return this.fk_funcionario;
}
/**
* seta o valor de hora_abertuta
* @param pHora_abertuta
*/
public void setHora_abertuta(String pHora_abertuta){
this.hora_abertura = pHora_abertuta;
}
/**
* @return hora_abertuta
*/
public String getHora_abertura(){
return this.hora_abertura;
}
/**
* seta o valor de data_abertura
* @param pData_abertura
*/
public void setData_abertura(Date pData_abertura){
this.data_abertura = pData_abertura;
}
/**
* @return data_abertura
*/
public Date getData_abertura(){
return this.data_abertura;
}
/**
* seta o valor de valor_abertura
* @param pValor_abertura
*/
public void setValor_abertura(float pValor_abertura){
this.valor_abertura = pValor_abertura;
}
/**
* @return valor_abertura
*/
public float getValor_abertura(){
return this.valor_abertura;
}
/**
* seta o valor de status_caixa
* @param pStatus_caixa
*/
/**
* @return status_caixa
*/
/**
* seta o valor de total_Movimentacoes
* @param pTotal_Movimentacoes
*/
public void setTotal_Movimentacoes(float pTotal_Movimentacoes){
this.total_Movimentacoes = pTotal_Movimentacoes;
}
/**
* @return total_Movimentacoes
*/
public float getTotal_Movimentacoes(){
return this.total_Movimentacoes;
}
/**
* seta o valor de caixa_sangria
* @param pCaixa_sangria
*/
public void setCaixa_sangria(float pCaixa_sangria){
this.caixa_sangria = pCaixa_sangria;
}
/**
* @return caixa_sangria
*/
public float getCaixa_sangria(){
return this.caixa_sangria;
}
/**
* seta o valor de hora_fechamento
* @param pHora_fechamento
*/
public void setHora_fechamento(String pHora_fechamento){
this.hora_fechamento = pHora_fechamento;
}
/**
* @return hora_fechamento
*/
public String getHora_fechamento(){
return this.hora_fechamento;
}
/**
* seta o valor de data_fechamento
* @param pData_fechamento
*/
public void setData_fechamento(Date pData_fechamento){
this.data_fechamento = pData_fechamento;
}
/**
* @return data_fechamento
*/
public Date getData_fechamento(){
return this.data_fechamento;
}
// public Date setData_abertura(LocalDate localDate) {
// return this.data_abertura;
// }
/**
* @return the status_caixa
*/
public int getStatus_caixa() {
return this.status_caixa;
}
/**
* @param status_caixa the status_caixa to set
*/
public void setStatus_caixa(int sstatus_caixa) {
this.status_caixa = sstatus_caixa;
}
@Override
public String toString(){
return "ModelCaixa {" + "::pk_caixa = " + this.pk_caixa + "::fk_funcionario = " + this.fk_funcionario + "::hora_abertura = " + this.hora_abertura + "::data_abertura = " + this.data_abertura + "::valor_abertura = " + this.valor_abertura + "::status_caixa = " + this.status_caixa + "::total_Movimentacoes = " + this.total_Movimentacoes + "::caixa_sangria = " + this.caixa_sangria + "::hora_fechamento = " + this.hora_fechamento + "::data_fechamento = " + this.data_fechamento + "}";
}
}
Classe DaoCaixa
package DAO;
import model.ModelCaixa;
import conexoes.ConexaoMySql;
import java.util.ArrayList;
import model.ModelProdutos;
public class DAOCaixa extends ConexaoMySql {
/**
* grava Caixa
* @param pModelCaixa
* @return int
*/
public int salvarCaixaDAO(ModelCaixa pModelCaixa){
try {
this.conectar();
return this.insertSQL(
"INSERT INTO tbl_caixa ("
// + "pk_caixa,"
+ "fk_funcionario,"
+ "hora_abertura,"
+ "data_abertura,"
+ "valor_abertura,"
+ "status_caixa,"
+ "total_movimentacoes"
+ "caixa_sangria,"
+ "hora_fechamento,"
+ "data_fechamento"
+ ") VALUES ("
// + "'" + pModelCaixa.getPk_caixa() + "',"
+ "'" + pModelCaixa.getFk_funcionario() + "',"
+ "'" + pModelCaixa.getHora_abertura() + "',"
+ "'" + pModelCaixa.getData_abertura() + "',"
+ "'" + pModelCaixa.getValor_abertura() + "',"
+ "'" + pModelCaixa.getStatus_caixa() + "',"
+ "'" + pModelCaixa.getTotal_Movimentacoes() + "'"
+ "'" + pModelCaixa.getCaixa_sangria() + "',"
+ "'" + pModelCaixa.getHora_fechamento() + "',"
+ "'" + pModelCaixa.getData_fechamento() + "'"
+ ""
+ ");"
);
}catch(Exception e){
e.printStackTrace();
return 0;
}finally{
this.fecharConexao();
}
}
/**
* recupera Caixa
* @param pPk_caixa
* @return ModelCaixa
*/
public ModelCaixa getCaixaDAO(int pPk_caixa){
ModelCaixa modelCaixa = new ModelCaixa();
try {
this.conectar();
this.executarSQL(
"SELECT "
+ "pk_caixa,"
+ "fk_funcionario,"
+ "hora_abertura,"
+ "data_abertura,"
+ "valor_abertura,"
+ "status_caixa,"
+ "total_movimentacoes,"
+ "caixa_sangria,"
+ "hora_fechamento,"
+ "data_fechamento"
+ " FROM"
+ " tbl_caixa"
+ " WHERE"
+ " pk_caixa = '" + pPk_caixa + "'"
+ ";"
);
while(this.getResultSet().next()){
modelCaixa.setPk_caixa(this.getResultSet().getInt(1));
modelCaixa.setFk_funcionario(this.getResultSet().getInt(2));
modelCaixa.setHora_abertuta(this.getResultSet().getString(3));
modelCaixa.setData_abertura(this.getResultSet().getDate(4));
modelCaixa.setValor_abertura(this.getResultSet().getFloat(5));
modelCaixa.setStatus_caixa(this.getResultSet().getInt(6));
modelCaixa.setTotal_Movimentacoes(this.getResultSet().getFloat(7));
modelCaixa.setCaixa_sangria(this.getResultSet().getFloat(8));
modelCaixa.setHora_fechamento(this.getResultSet().getString(9));
modelCaixa.setData_fechamento(this.getResultSet().getDate(10));
}
}catch(Exception e){
e.printStackTrace();
}finally{
this.fecharConexao();
}
return modelCaixa;
}
//retornar ultimo id
public ModelCaixa UltimoStatusDAO(int pModelCaixa){
ModelCaixa modelCaixa = new ModelCaixa();
try {
this.conectar();
this.executarSQL(
"SELECT"
+ "Max pk_caixa,"
+ "status_caixa"
+ " FROM tbl_caixa"
+ ";"
);
while(this.getResultSet().next()){
modelCaixa.setPk_caixa(this.getResultSet().getInt(1));
modelCaixa.setStatus_caixa(this.getResultSet().getInt(2));
}
}catch(Exception e){
e.printStackTrace();
}finally{
this.fecharConexao();
}
return modelCaixa;
}
/**
* recupera uma lista de Caixa
* @return ArrayList
*/
public ArrayList<ModelCaixa> getListaCaixaDAO(){
ArrayList<ModelCaixa> listamodelCaixa = new ArrayList();
ModelCaixa modelCaixa = new ModelCaixa();
try {
this.conectar();
this.executarSQL(
"SELECT "
+ "pk_caixa,"
+ "fk_funcionario,"
+ "hora_abertura,"
+ "data_abertura,"
+ "valor_abertura,"
+ "status_caixa,"
+ "total_movimentacoes,"
+ "caixa_sangria,"
+ "hora_fechamento,"
+ "data_fechamento"
+ " FROM"
+ " tbl_caixa"
+ ";"
);
while(this.getResultSet().next()){
modelCaixa = new ModelCaixa();
modelCaixa.setPk_caixa(this.getResultSet().getInt(1));
modelCaixa.setFk_funcionario(this.getResultSet().getInt(2));
modelCaixa.setHora_abertuta(this.getResultSet().getString(3));
modelCaixa.setData_abertura(this.getResultSet().getDate(4));
modelCaixa.setValor_abertura(this.getResultSet().getFloat(5));
modelCaixa.setStatus_caixa(this.getResultSet().getInt(6));
modelCaixa.setTotal_Movimentacoes(this.getResultSet().getFloat(7));
modelCaixa.setCaixa_sangria(this.getResultSet().getFloat(8));
modelCaixa.setHora_fechamento(this.getResultSet().getString(9));
modelCaixa.setData_fechamento(this.getResultSet().getDate(10));
listamodelCaixa.add(modelCaixa);
}
}catch(Exception e){
e.printStackTrace();
}finally{
this.fecharConexao();
}
return listamodelCaixa;
}
/**
* atualiza Caixa
* @param pModelCaixa
* @return boolean
*/
public boolean atualizarCaixaDAO(ModelCaixa pModelCaixa){
try {
this.conectar();
return this.executarUpdateDeleteSQL(
"UPDATE tbl_caixa SET "
+ "pk_caixa = '" + pModelCaixa.getPk_caixa() + "',"
// + "fk_funcionario = '" + pModelCaixa.getFk_funcionario() + "',"
// + "hora_abertura = '" + pModelCaixa.getHora_abertura() + "',"
// + "data_abertura = '" + pModelCaixa.getData_abertura() + "',"
// + "valor_abertura = '" + pModelCaixa.getValor_abertura() + "',"
+ "status_caixa = '" + pModelCaixa.getStatus_caixa() + "',"
+ "total_movimentacoes = '" + pModelCaixa.getTotal_Movimentacoes() + "',"
+ "caixa_sangria = '" + pModelCaixa.getCaixa_sangria() + "',"
+ "hora_fechamento = '" + pModelCaixa.getHora_fechamento() + "',"
+ "data_fechamento = '" + pModelCaixa.getData_fechamento() + "'"
+ " WHERE "
+ "pk_caixa = '" + pModelCaixa.getPk_caixa() + "'"
+ ";"
);
}catch(Exception e){
e.printStackTrace();
return false;
}finally{
this.fecharConexao();
}
}
/**
* exclui Caixa
* @param pPk_caixa
* @return boolean
*/
public boolean excluirCaixaDAO(int pPk_caixa){
try {
this.conectar();
return this.executarUpdateDeleteSQL(
"DELETE FROM tbl_caixa "
+ " WHERE "
+ "pk_caixa = '" + pPk_caixa + "'"
+ ";"
);
}catch(Exception e){
e.printStackTrace();
return false;
}finally{
this.fecharConexao();
}
}
//retornar ultimo id
public ModelCaixa UltimoIdCaixaDAO(ModelCaixa pModelCaixa){
ModelCaixa modelCaixa = new ModelCaixa();
try {
this.conectar();
//return this.insertSQL(
// this.insertSQL(
this.executarSQL(
"SELECT MAX(pk_caixa) FROM tbl_caixa"
);
while(this.getResultSet().next()){
modelCaixa.setPk_caixa(this.getResultSet().getInt(1));
}
}catch(Exception e){
e.printStackTrace();
}finally{
this.fecharConexao();
}
return modelCaixa;
}
Classe ControllerCaixa
package controller;
import model.ModelCaixa;
import DAO.DAOCaixa;
import java.util.ArrayList;
import model.ModelVendasProdutos;
public class ControllerCaixa {
private DAOCaixa daoCaixa = new DAOCaixa();
/**
* grava Caixa
* @param pModelCaixa
* @return int
*/
public int salvarCaixaController(ModelCaixa pModelCaixa){
return this.daoCaixa.salvarCaixaDAO(pModelCaixa);
}
/**
* recupera Caixa
* @param pPk_caixa
* @return ModelCaixa
*/
public ModelCaixa getCaixaController(int pPk_caixa){
return this.daoCaixa.getCaixaDAO(pPk_caixa);
}
public ModelCaixa getUltimoIdController(ModelCaixa pModelCaixa){
return this.daoCaixa.UltimoIdCaixaDAO(pModelCaixa);
}
public ModelCaixa getUltimoStatusController(ModelCaixa pModelCaixa){
return this.daoCaixa.UltimoIdCaixaDAO(pModelCaixa);
}
/**
* recupera uma lista deCaixa
* @param pPk_caixa
* @return ArrayList
*/
public ArrayList<ModelCaixa> getListaCaixaController(){
return this.daoCaixa.getListaCaixaDAO();
}
/**
* atualiza Caixa
* @param pModelCaixa
* @return boolean
*/
public boolean atualizarCaixaController(ModelCaixa pModelCaixa){
return this.daoCaixa.atualizarCaixaDAO(pModelCaixa);
}
/**
* exclui Caixa
* @param pPk_caixa
* @return boolean
*/
public boolean excluirCaixaController(int pPk_caixa){
return this.daoCaixa.excluirCaixaDAO(pPk_caixa);
}
// public boolean salvarCaixaController(ArrayList<ModelCaixa> plistaModelAberturaaCaixa) {
// return this.daoCaixa.salvarCaixaDAO(plistaModelAberturaaCaixa);
// }
}
Classe ConexaoSql
package conexoes;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.JOptionPane;
public class ConexaoMySql {
private boolean status = false;
private String mensagem = ""; //variavel que vai informar o status da conexao
private Connection con = null; //variavel para conexao
private Statement statement;
private ResultSet resultSet;
private String servidor = "localhost";
private String nomeDoBanco = "dbvendas";
private String usuario = "root";
private String senha = "";
public ConexaoMySql(){}
public ConexaoMySql(String pServidor, String pNomeDoBanco, String pUsuario, String pSenha){
this.servidor = pServidor;
this.nomeDoBanco = pNomeDoBanco;
this.usuario = pUsuario;
this.senha = pSenha;
}
/**
* Abre uma conexao com o banco
* @return Connection
*/
public Connection conectar(){
try {
//Driver do PostgreSQL
Class.forName("com.mysql.cj.jdbc.Driver").newInstance();
//local do banco, nome do banco, usuario e senha
String url = "jdbc:mysql://localhost:3306/dbvendas?useTimezone=true&serverTimezone=America/Sao_Paulo";
this.setCon((Connection) DriverManager.getConnection(url, usuario, senha));
//se ocorrer tudo bem, ou seja, se conectar a linha a segui é executada
this.status = true;
}
catch(ClassNotFoundException | InstantiationException | IllegalAccessException | SQLException e){
JOptionPane.showMessageDialog(null, e.getMessage());
}
return this.getCon();
}
/**
* Executa consultas SQL
* @param pSQL
* @return int
*/
public boolean executarSQL(String pSQL){
try {
//createStatement de con para criar o Statement
this.setStatement(getCon().createStatement());
// Definido o Statement, executamos a query no banco de dados
this.setResultSet(getStatement().executeQuery(pSQL));
} catch (SQLException ex) {
ex.printStackTrace();
return false;
}
return true;
}
public boolean executarUpdateDeleteSQL(String pSQL){
try {
//createStatement de con para criar o Statement
this.setStatement(getCon().createStatement());
// Definido o Statement, executamos a query no banco de dados
getStatement().executeUpdate(pSQL);
} catch (SQLException ex) {
ex.printStackTrace();
return false;
}
return true;
}
/**
* Executa insert SQL
* @param pSQL
* @return boolean
*/
public int insertSQL(String pSQL){
int status = 0;
try {
//createStatement de con para criar o Statement
this.setStatement(getCon().createStatement());
// Definido o Statement, executamos a query no banco de dados
this.getStatement().executeUpdate(pSQL);
//consulta o ultimo id inserido
this.setResultSet(this.getStatement().executeQuery("SELECT last_insert_id();"));
//recupera o ultimo id inserido
while(this.resultSet.next()){
status = this.resultSet.getInt(1);
}
//retorna o ultimo id inserido
return status;
} catch (SQLException ex) {
ex.printStackTrace();
return status;
}
}
/**
* encerra a conexão corrente
* @return boolean
*/
public boolean fecharConexao(){
try {
if((this.getResultSet() != null) && (this.statement != null)){
this.getResultSet().close();
this.statement.close();
}
this.getCon().close();
return true;
} catch(SQLException e) {
JOptionPane.showMessageDialog(null, e.getMessage());
}
return false;
}
/**
* @return the status
*/
public boolean isStatus() {
return this.status;
}
/**
* @return the mensagem
*/
public String getMensagem() {
return mensagem;
}
/**
* @return the statement
*/
public Statement getStatement() {
return statement;
}
/**
* @return the resultSet
*/
public ResultSet getResultSet() {
return resultSet;
}
/**
* @param mensagem the mensagem to set
*/
public void setMensagem(String mensagem) {
this.mensagem = mensagem;
}
/**
* @return the con
*/
public Connection getCon() {
return con;
}
/**
* @param con the con to set
*/
public void setCon(Connection con) {
this.con = con;
}
/**
* @param statement the statement to set
*/
public void setStatement(Statement statement) {
this.statement = statement;
}
/**
* @param resultSet the resultSet to set
*/
public void setResultSet(ResultSet resultSet) {
this.resultSet = resultSet;
}
/**
* @return the servidor
*/
public String getServidor() {
return servidor;
}
/**
* @param servidor the servidor to set
*/
public void setServidor(String servidor) {
this.servidor = servidor;
}
/**
* @return the nomeDoBanco
*/
public String getNomeDoBanco() {
return nomeDoBanco;
}
/**
* @param nomeDoBanco the nomeDoBanco to set
*/
public void setNomeDoBanco(String nomeDoBanco) {
this.nomeDoBanco = nomeDoBanco;
}
/**
* @return the usuario
*/
public String getUsuario() {
return usuario;
}
/**
* @param usuario the usuario to set
*/
public void setUsuario(String usuario) {
this.usuario = usuario;
}
/**
* @return the senha
*/
public String getSenha() {
return senha;
}
/**
* @param senha the senha to set
*/
public void setSenha(String senha) {
this.senha = senha;
}
}