Alguém poderia me mostrar o erro:
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
public class CategoriaDAO {
private Connection connection;
public CategoriaDAO(Connection con) {
this.connection = con;
}
public List<Categoria> listar() throws SQLException {
List<Categoria> categorias = new ArrayList<>();
System.out.println("Executando a query de listar categoria");
String sql = "SELECT ID, NOME FROM CATEGORIA";
try(PreparedStatement pstm = connection.prepareStatement(sql)) {
pstm.execute();
try(ResultSet rst = pstm.getResultSet()) {
while(rst.next()) {
Categoria categoria = new Categoria(rst.getInt(1), rst.getString(2));
categorias.add(categoria);
}
}
}
return categorias;
}
public List<Categoria> listarComProdutos() throws SQLException {
Categoria ultima = null;
List<Categoria> categorias = new ArrayList<>();
System.out.println("Executando a query de listar categoria");
String sql = "SELECT C.ID, C.NOME, P.ID, P.NOME, P.DESCRICAO, FROM CATEGORIA C INNER JOIN"
+ " PRODUTO P ON C.ID = P.CATEGORIA_ID";
try(PreparedStatement pstm = connection.prepareStatement(sql)) {
pstm.execute();
try(ResultSet rst = pstm.getResultSet()) {
while(rst.next()) {
if(ultima == null || ultima.getNome().equals(rst.getString(2))) {
Categoria categoria = new Categoria(rst.getInt(1), rst.getString(2));
ultima = categoria;
categorias.add(categoria);
}
}
}
}
return categorias;
}
}
Está aparecendo esse erro:
Exception in thread "main" java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM CATEGORIA C INNER JOIN PRODUTO P ON C.ID = P.CATEGORIA_ID' at line 1 at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120) at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97) at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122) at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:953) at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:370) at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.execute(NewProxyPreparedStatement.java:67) at CategoriaDAO.listarComProdutos(CategoriaDAO.java:47) at TestaListagemDeCategorias.main(TestaListagemDeCategorias.java:11)