Como chamar um método do DAO dentro do outro DAO

Bom dia!

estou tentando executar um metodo de um determinado dao dentro de outro dao,

segue abaixo o dao que eu quero instanciar em outro dao:


package vendas.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;

import vendas.connection.FabricaDeConexao;


public class monitorDao {
	
	public static void reportar(int acao, int referente, int status){
		Connection c = null;
		PreparedStatement stmt = null;
		try{
			String sql = "insert into monitor (acao,referente,status) values(?,?,?)";
			c = FabricaDeConexao.getConexao();
			stmt = c.prepareStatement(sql);
			stmt.setInt(1, acao);
			stmt.setInt(2, referente);
			stmt.setInt(3, status);
			stmt.executeUpdate();
		}catch (Exception e) {
			// TODO: handle exception
		}finally{
			FabricaDeConexao.closePreparedStatement(stmt);
			FabricaDeConexao.closeConnection(c);
		}
	}

}

segue o DAO que desejo fazer a instancia:

package vendas.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 vendas.connection.FabricaDeConexao;
import vendas.pojo.Empresa;

public class empresaDao {
	
	Connection connection = null;
	PreparedStatement preparedStatement = null;
	
	public void inserir(Empresa empresa) throws SQLException{
	
					
		try{ 	
		monitorDao.reportar(1, 1, 1);//aki faço a chamada do método static!
		String sql = "insert into empresa (nome,telefone,responsavel) values (?,?,?)";
		connection = FabricaDeConexao.getConexao();
		preparedStatement = connection.prepareStatement(sql);
		
		preparedStatement.setString(1, empresa.getNome());
		preparedStatement.setString(2, empresa.getTelefone());
		preparedStatement.setString(3, empresa.getResponsavel());
		
		preparedStatement.execute();
		
		
		}catch (Exception e) {
			e.printStackTrace();
		}finally{
			FabricaDeConexao.closePreparedStatement(preparedStatement);
			FabricaDeConexao.closeConnection(connection);
		}
	}
}

Se alguem poder me ajudar, agradeço!

Por boas praticas em Java, inicie o nome de suas classes com letras maiúsculas.

Quando você realiza uma consulta no banco de dados, realiza porque precisa de um retorno que são os dados localizados. Em nenhum dos 2 métodos que você realiza as consultas você tem retorno do que está buscando. Na verdade retorno você até deve ter, mas não o está armazenando em lugar nenhum.
Por exemplo:monitorDao.reportar(1, 1, 1);//aki faço a chamada do método static! O que adianta fazer essa chamada se você não armazena o resultado?

[quote=romarcio]Por boas praticas em Java, inicie o nome de suas classes com letras maiúsculas.

Quando você realiza uma consulta no banco de dados, realiza porque precisa de um retorno que são os dados localizados. Em nenhum dos 2 métodos que você realiza as consultas você tem retorno do que está buscando. Na verdade retorno você até deve ter, mas não o está armazenando em lugar nenhum.
Por exemplo:monitorDao.reportar(1, 1, 1);//aki faço a chamada do método static! O que adianta fazer essa chamada se você não armazena o resultado?[/quote]

romarcio! agradeço o toque sobre a convenção de nomes, entretanto, isso é só para aprendizado portanto, não tenho interesse em fazer coisas certinhas…
sobre o retorno que você disse, minha função não tem retorno deve ter percebido que meu método simplesmente insere no banco, não recupera, não preciso de retorno no momento, minha única dúvida é quanto ao método estático, somente isso.

Puxa, que desatenção minha. Desculpa ai, juro que quando olhei pareceu que eram 2 selects que você estava tentando fazer.
Sobre fazer as coisas certinhas, é no momento de aprendizado que você deve dar valor e fazer as coisas certinhas para não viciar na forma errada de se fazer.

Sobre o método estático, parece que está correto.
Seu método estático reportar() possui internamente uma conexão sendo aberta e depois fechada. Como ele é estático não precisa instaciar ele, é só chamar como você fez.
Está sendo lançada alguma exceção na execução?

intão cara! ele não faz nada, nem chama a classe monitorDao, ja coloquei ponto de debug e tudo, não sei oque fazer!

Coloca um e.printStackTrace(); dentro do cacth do método reportar();
O método deve estar gerando algum erro na execução. Com certeza deve estar sendo chamado.

kra é incrivel!

eu coloquei o print lá dentro e não mostro nada! o método não esta sendo chamado!

não passa nem pelo ponto de debug!