Múltiplos SELECT com <%=rs.getString...%>[Resolvido]

8 respostas
D

Estou tentando juntas 2 consultas de tabelas diferentes com colunas
totalmente diferentes e não consegui.

Já tentei

SELECT c.coluna1, c.coluna2, b.coluna1, b.coluna2 FROM colun1 as c, colun2 as b;

e não deu certo.

O que tenho que fazer?

Obrigado.

8 Respostas

adriano_si

Usa JOINs…

SELECT c.coluna1, c.coluna2, b.coluna1, b.coluna2 FROM colun1 as c JOIN colun2 as b ON (c.coluna1 = b.coluna1)

Tenta aí…

pimenta

PK da tabela X = FK da tabela Y:

SELECT a.campo1, a.campo2, a.campo3, b.campo1, b.campo2
FROM tabela1 a, tabela2 b
WHERE a.campoPK = b.campoFK

Isso deve te ajudar.

Abraços,

D
pimenta:
PK da tabela X = FK da tabela Y:
SELECT a.campo1, a.campo2, a.campo3, b.campo1, b.campo2
FROM tabela1 a, tabela2 b
WHERE a.campoPK = b.campoFK

Isso deve te ajudar.

Abraços,

Veja, eu já utilizei as maneiras propostas por vocês antes. Aliás já vi no IMasters mas só dá certo no próprio banco de dados..

A aplicação responde diferente, então acho que o erro é no retorno entre as tags JSP.

Vamos ao código:

<%@page language="java" import="schema.conect001"%>
<%@page import="java.sql.*"%>  

<%  

Connection conn = null;
ResultSet rs = null;
Statement stmt = null;

  try {
      stmt = conn.createStatement();
    
    String sql = "SELECT b.introd, b.frase_introd, t.codTopic, "+
            " t.titleTopic, t.conteudoTopic FROM banner as b, tableTopic as t;";
    rs = stmt.executeQuery(sql);
    
    rs.next();

%>

Este foi o código que utilizei pra "chamar" os dados das duas tabelas, reparem que dá certo no MySql e não na aplicação. (NullPointerException na aplicação_.

continuando:
<h1><span><%=rs.getString("introd")%></span></h1>
<h5><span><%=rs.getString("frase_introd")%></span></h5>
<%=rs.getString("titleTopic")%><br>
<%=rs.getString("conteudoTopic")%>

<% 
} catch(SQLException sqlex2) {
               out.println("Erro: <br>"+sqlex2);
           }
%>

Bom, gera NullPointerException desta maneira, então
gostaria de saber como realizar a múltipla consulta corretamente.

Obrigado.

C

se for EXATAMENTE esse código que vc postou, talvez falte atribuir uma conexão para o objeto conn :lol:

pimenta

Desculpa me intrometer, não sei exatamente qual sua necessidade de fazer isso direto na JSP, mas não vale mais a pena você fazer isso numa classe e setar o atributo pra JSP? Assim você só trataria o objeto ResultSet.

E é possível que seja isso que o amigo de cima falou. Parece que você não está criando a conexão com o banco. Você pode tentar debugar com alguma IDE pra saber exatamente onde está o erro.

Abraços,

D

Opa, esqueci de postar a conexão.

eu importei a conexão sim, vejam:
<%@page language="java" import="schema.conect001"%>
<%@page import="java.sql.*"%>
aqui está ela:
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package schema;

import java.sql.*;

public class conect001 {

    public conect001() {
    
    Connection conn = null;    
        
    try {
    String driverName = "org.gjt.mm.mysql.Driver";  // também poderia ser com.mysql.jdbc.Driver
    Class.forName(driverName);

    String serverName = "localhost";
    String mydatabase = "banco";
    
    String url = "jdbc:mysql://" +serverName+ "/" +mydatabase;
    String username = "user";
    String password = "pass";
    conn = java.sql.DriverManager. getConnection(url, username, password);
} catch(ClassNotFoundException cnfex) {
        System.out.println("Não foi possível encontrar o driver"+cnfex.toString());
        } catch (java.sql.SQLException sqlex) {
            System.out.println("Erro ao conectar-se ao banco de dados"+sqlex.toString());
            }
    
    
    }
}
D

Olá a todos.

Passei aqui pra dizer que já resolvi o problema.

A tabela do segundo SELECT estava com campos nulos, ou seja, eu ainda não havia preenchido com dados.
O SELECT que eu havia postado resolveu após eu preencher manualmente a 2a tabela.
Da próxima vez vou atribuir valores default à todos os campos da tabela.

Obrigado pela ajuda.

felipeguerra

Em 2008 programando assim?

Criado 3 de dezembro de 2008
Ultima resposta 4 de dez. de 2008
Respostas 8
Participantes 5