Problema com JDBC + MySql

7 respostas
H

Galerinha to tendo 1 problema simples, qnd eu to pegando os dados do meu banco (Mysql) atraves dos meus jsps, ele n esta mostrando os dados com acento(´,^,~), ele esta substituindo por caracteres quaisquer, mas os dados sem acento exibe normal. Eu axo q isso eh coisa do driver do mysql p se conectar c jdbc. Vcs ja tiveram esse msm problema? O que ta acontecendo?

Obs: com o Microsoft Sql Server n tive isso.
Obs2: os dados com acento sao exibidos normais na linha de comando do MySql.

Figura dos dados sendo exibidos errado qnd o jsp pega do mysql:

Pousada do Cajú, Luís, etc…

Codigo do JSP q acessa o banco Mysql:
<%@ page contentType=“text/html; charset=UTF-8” pageEncoding=“ISO-8859-1” %>

<%=request.getParameter("catalogo")%>


<%@ page import=“java.sql.Connection, java.sql.DriverManager, java.sql.ResultSet, java.sql.SQLException, java.sql.Statement” %>

<%
String catalogo = request.getParameter(“catalogo”);

try {

Connection conexao;

String cmd;

Statement stmt;

ResultSet rs;
Class.forName(org.gjt.mm.mysql.Driver);

conexao = DriverManager.getConnection(jdbc:mysql://localhost/controle_turistico, root, sa);						

stmt = conexao.createStatement();
if (catalogo.equals(hoteis) || catalogo.equals(moteis) || catalogo.equals(boates) || catalogo.equals(restaurantes) || catalogo.equals(pousadas)) {

cmd = "select num,nome,rua,bairro,tel,site,url_fotos from " + catalogo;

rs = stmt.executeQuery(cmd);
while (rs.next()) {
out.println ("<p>" + rs.getShort(1) + " - ");
    if (rs.getString(7) != null) 
   out.println ("<a href=" + rs.getString(7) +" target=_blank>" + rs.getString(2) + "</a>" + "<i> (fotos)</i>"); 
else 
   out.println (rs.getString(2)); 
out.println ("<br>" + rs.getString(3) + ", " + rs.getString(4) + "<br>" + rs.getString(5) + "<br>" + rs.getString(6) + "</p>"); 
  }
}

else

if (catalogo.equals(praias)) {

cmd = "select num,nome,localizacao,url_fotos from " + catalogo;

rs = stmt.executeQuery(cmd);
while (rs.next()) {
        out.println ("<p>" + rs.getShort(1) + " - ");
        if (rs.getString(4) != null) 
           out.println ("<a href=" + rs.getString(4) +" target=_blank>" + rs.getString(2) + "</a>" + "<i> (fotos)</i>"); 
        else 
          out.println (rs.getString(2)); 
        out.println ("<br>" + rs.getString(3) + "</p>"); 
     }
  }
  else {
     cmd = "select num,nome,rua,bairro,tel,url_fotos from " + catalogo;
     rs = stmt.executeQuery(cmd);
        	        
     while (rs.next()) {
        out.println ("<p>" + rs.getShort(1) + " - ");
        if (rs.getString(6) != null) 
           out.println ("<a href=" + rs.getString(6) +" target=_blank>" + rs.getString(2) + "</a>" + "<i> (fotos)</i>"); 
    else 
           out.println (rs.getString(2)); 
    out.println ("<br>" + rs.getString(3) + ", " + rs.getString(4) + "<br>" + rs.getString(5) + "</p>"); 
     }
  }
} catch (ClassNotFoundException cnfe) {

System.err.println(Erro: classe inexistente);

} catch (SQLException sqle) {

System.err.println(Erro: SQL Exception);

sqle.printStackTrace();

}

%>

7 Respostas

agodinho

vê no mysql como é que vc faz pra configurar o conjunto de caracters que ele vai usar (codepage, alguma coisa assim).

Woody

H

aonde vejo isso???

T

procure por character encoding (nao sei onde fica no mysql)

marcushlm

cara…
vai no MySQL Administrator -> Startup Variables -> (Aba) Advanced

olha se o def char set eh o latin1

eh o caso do meu que funciona normal :wink:

H

rpz mas qnd eu exibo os dados na linha de comando do mysql (sem ser pelos jsp´s), ele ta exibindo normal, caso esse negocio dos caracateres tivesse errado, ele exibiria errado na linha de comando tb, axo.

no meu mysql, n to encontrando esse mysql administrator (axo q eh pq peguei 1 versao mais “enxuta” do mysql)

T

sete o charset das suas jsp tb…

H

<%@ page contentType=“text/html; charset=UTF-8” pageEncoding=“ISO-8859-1” %>

eh esta diretiva q vc ta falando? se for, ja pus e nd :frowning:

Criado 29 de março de 2006
Ultima resposta 1 de abr. de 2006
Respostas 7
Participantes 4