Olá pessoal,
Tenho uma classe PropostaComercial que extends a classe Conexao que chama o meu DB Mysql. A duvida é preciso que essa classe liste todos os dados das minhas tabelas (kitnets,casas,loteamentos,etc) somente pelo codigo do produto na pagina jsp, mas na linha 59 está dando um erro na instrucao , justamente porque nao consigo implementar este vinculo das tabelas do meu Bando de Dados chamada imoveis.
Olha o codigo da classe PropostaComercial.java:
[code]package cadastro;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Vector;
import org.gjt.mm.mysql.PreparedStatement;
/**
*
-
@author Adriana
*/
public class PropostaComercial extends Conexao{
private int codigo;
private String descricao;
public PropostaComercial () {
conecta () ;
}
public PropostaComercial (int codigo, String descricao) {
this.codigo = codigo;
this.descricao=descricao ;
}
public int getCodigo ()
{
return codigo;
}
public void setCodigo (int codigo)
{
this.codigo = codigo;
}
public String getDescricao ()
{
return descricao;
}
public void setDescricao (String descricao)
{
this.descricao = descricao;
}
public Vector getListar() {
Vector x = new Vector();
try {
// Joga dados no vetor
PreparedStatement sql = conn.prepareStatement("SELECT * FROM kitnets.,casas., loteamentos., salascomerciais.,sobrados.,terrenos.,order by codigo " ); //duvida!
ResultSet rs = sql.executeQuery();
while (rs.next()) {
x.add(new PropostaComercial (rs.getInt("codigo"),
rs.getString("descricao")));
}
rs.close();
}
catch (SQLException ex) {
System.out.println(ex.getMessage());
}
return x;
}
}
[/code]
OBS; Antes eu havia feito com essa instrucao : PreparedStatement sql = conn.prepareStatement("SELECT * FROM imoveis , order by codigo"); chamando a base toda, mas mesmo assim continua com erro.
Por fvr alguem pode me ajudar !
Adriana
Oi …alguem pode me ajudar por fvr ?
Adriana
Pessoal,
Ainda nao consegui resposta…estou garimpando na net e nao encontrei nada alguem podem me ajudar ?
Adriana
Seu problema é na query?
Se for tente usar INNER JOIN
sql = "SELECT a.cod_cliente,a.nome as contratante, a.contrato,b.placa,";
sql += " c.cod_ordem_servico,e.descricao as equipamento ";
sql += " FROM cliente a ";
sql += " INNER JOIN veiculo_cliente b on(a.cod_cliente = b.cod_cliente)";
sql += " INNER JOIN ordem_servico c on(a.cod_cliente = c.cod_cliente)";
sql += " INNER JOIN equipamento_cliente d on(a.cod_cliente = d.cod_cliente)";
sql += " INNER JOIN tipo_equipamento e on(d.cod_tipo_equipamento = e.codigo)";
sql += " WHERE cod_xpto = ? ";
Nas suas tabelas devem existir o campo de codigo para identificar, nesse meu caso é o cod_cliente comum em todas as tabelas e um where no final o ponto crucial, era o que precisava?
Na realidade Pedrosa é no proprio codigo java como eu havia falado no post anterior quero colocar na instrucao :
PreparedStatement sql = conn.prepareStatement("SELECT * FROM kitnets.,casas., loteamentos., salascomerciais.,sobrados.,terrenos.,order by codigo " ); //aqui preciso que liste todas as tabelas do meu db que tenham o campo codigo do cliente.Com isso qdo o usuario fizer um input na minha jsp, ira mostrar a descricao do imovel selecionado …vc precisa do fonte da minha jsp para entender melhor ? eu post aqui…
A estrutura do meu db está assim :
Banco de Dados : imoveis
Tabelas
kitnets
casas
loteamentos
salascomerciais
terrenos
sobrados
Adriana
Poste o código aqui, assim todos podem ajudar!
Ok,
A minha classe Conexao é esta onde chama o meu DB :
[code]package cadastro;
/**
*
public void conecta() {
// carrega driver jdbc
try {
Class.forName(“org.gjt.mm.mysql.Driver”).newInstance();
}
catch (Exception ex) {
mensagem = “Driver não carregado!”;
System.out.println(“erro:”+mensagem);
}
// faz a conexão
try {
conn = DriverManager.getConnection("jdbc:mysql://localhost/imoveis",
"root", "root");
}
catch (SQLException ex) {
mensagem = ex.getMessage();
System.out.println("erro:"+mensagem);
}
}
}[/code]
Depois eu tenho a classe PropostaComercial como havia postado anteriormente que ira listar todas as minhas tabelas a partir do input do usuario fizer na minha pagina propostacomercial.jsp :
package cadastro;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Vector;
import org.gjt.mm.mysql.PreparedStatement;
/**
*
* @author Adriana
*/
public class PropostaComercial extends Conexao{
private int codigo;
private String descricao;
public PropostaComercial () {
conecta () ;
}
public PropostaComercial (int codigo, String descricao) {
this.codigo = codigo;
this.descricao=descricao ;
}
public int getCodigo ()
{
return codigo;
}
public void setCodigo (int codigo)
{
this.codigo = codigo;
}
public String getDescricao ()
{
return descricao;
}
public void setDescricao (String descricao)
{
this.descricao = descricao;
}
public Vector getListar() {
Vector x = new Vector();
try {
// Joga dados no vetor
PreparedStatement sql = conn.prepareStatement("SELECT * FROM kitnets.*,casas.*, loteamentos.*, salascomerciais.*,sobrados.*,terrenos.*,order by codigo " ); //duvida!
ResultSet rs = sql.executeQuery();
while (rs.next()) {
x.add(new PropostaComercial (rs.getInt("codigo"),
rs.getString("descricao")));
}
rs.close();
}
catch (SQLException ex) {
System.out.println(ex.getMessage());
}
return x;
}
}
As minhas jsp’s são varias : casas.jsp , sobrados.jsp,etc , todas com um formulário que lista os itens atraves do input do código.
Só que esta classe PropostaComercial preciso que faça uma varredura na minha base de dados e pegue a descricao do codigo inputado pelo usuário exemplo:
código 1 - descrição : casa para temporada …blabla
Só não posto tudo porque está muito grande o projeto …para isso.
Pedrosa é isso …por fvr aguardo ajuda do pessoal do GUJ
Então vc precisa pegar esse código digitado atraves da propriedade:
Integer.parseInt(request.getParameter("codigo"));
Faça uma servlet, sua pagina chama essa servlet que instancia sua classe de negocio que retorna o resultado, esse resultado precisa ser devolvido para o jsp, segue um exemplo:
//Servlet
ClienteDAO cliented = new ClienteDAO();
request.setAttribute("clientes",cliented.findCliente(request.getParameter("nome"));
target = "/LocalizarCliente.jsp";
Pelo o que eu vi sua aplicação não tem essa ligação com sua classe de negocio, o que estou fazendo acima.
Ok Pedrosa , vou tentar depois te falo obrigada.
Adriana
Isso aqui pode te ajudar:
ok value ! irei dar uma estudada !