Oi pessoal…
É o seguinte, estou desenvolvendo um aplicativo em Java que faz a conexão com o banco de dados MySQL 5.0.
A conexão é feita normalmente e ele retorna os resultados esperados. Mas na minha classe existem os métodos getProduto e getPreco. O getProduto como deve retornar uma String do banco de dados, roda sem problemas. Mas a getPreco, que deverá retornar um número inteiro (no banco de dados, só inseri números inteiros) não funciona e retorna esse erro:
Exception in thread “main” java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String
at teste_banco.Acesso_Banco.getPreco(Acesso_Banco.java:101)
at teste_banco.Aplicativo.main(Aplicativo.java:15)
abaixo segue o método da classe:
static final String JDBC_DRIVER = “com.mysql.jdbc.Driver”;
static final String DATABASE_URL = “jdbc:mysql://localhost/produtos”;
Connection connection = null; // gerencia a conexão
Statement statement = null; // instrução de consulta
String consulta = null;
public int getPreco( String cons ){
String ResultadoConsulta = null;
int Preco = 0;
String SQL = "SELECT preco FROM mercadorias WHERE codigo = ";
consulta = SQL + cons;
try{
Class.forName( JDBC_DRIVER ); // carrega a classe de driver do banco de dados
// estabelece conexão com o banco de dados
connection = DriverManager.getConnection(DATABASE_URL, "user", "senha");
// cria Statement para consultar banco de dados
statement = connection.createStatement();
// consulta o banco de dados
ResultSet resultSet = statement.executeQuery(consulta.toString());
// processa resultados da consulta
ResultSetMetaData metaData = resultSet.getMetaData();
int numberOfColumns = metaData.getColumnCount();
while (resultSet.next())
{
for (int i = 1; i <= numberOfColumns; i++){
ResultadoConsulta = (String) resultSet.getObject(i);
Preco = Integer.parseInt(ResultadoConsulta);
}
//System.out.println();
}// fim do while
}// fim do try
catch (SQLException sqlException)
{
sqlException.printStackTrace();
System.exit(1);
}
catch (ClassNotFoundException classNotFound)
{
classNotFound.printStackTrace();
System.exit(1);
}// fim do catch
finally
{
try
{
statement.close();
connection.close();
}// fim do try
catch (Exception exception)
{
exception.printStackTrace();
System.exit(1);
}
}
return Preco;
}
Obrigado a todos