Erro no Statement e JTable [resolvido]

Olá,

Após o click no botão "Salvar" estou tentando listar o registro inserido no BD MySQL em um JTable. Como descrito no código abaixo,
no listener do botão "Salvar" o método abaixo (contido na classe Propriedade) é invocado recebendo como argumentos: o objeto (objPropriedade) a ser inserido e o JTable (table);

public void salvar(Propriedade objPropriedade, JTable table) throws SQLException{
        Conexao con = new Conexao();
        Statement stmt = con.getConnection().createStatement();
        String consulta = "INSERT INTO propriedade VALUES("+0+",'"+ objPropriedade.nome_prop+"'"+",'"+objPropriedade.municipio+"',"+
        objPropriedade.area+");";
        stmt.execute(consulta);        
        TableToJTable objTJT = new TableToJTable(stmt);
        objTJT.insertField   ("propriedade", table);
}

Após a inclusão do registro o método "insertField" é chamado, recebendo o nome da tabela(tabela) e o JTable(table):

package func;

import java.sql.ResultSet;
import java.sql.SQLException;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
import java.sql.Statement;
import java.sql.ResultSetMetaData;

public class TableToJTable { 
    private Statement stmt; 
    
    public TableToJTable(Statement stmt){
        this.stmt = stmt;
    };

    public void listTable(String tabela, JTable jtable){
        DefaultTableModel modelo = (DefaultTableModel) jtable.getModel();
        ResultSet rs;
        ResultSetMetaData rsmd = null;
        
        try {          
            rs = stmt.executeQuery("SELECT * FROM " + tabela);
            rsmd = rs.getMetaData();           

            String [] tableColumnsName = new String [rsmd.getColumnCount()];
            for (int i=1;i<=rsmd.getColumnCount();i++){               
                tableColumnsName[i-1] = new String(rsmd.getColumnName(i));
            }

            modelo.setColumnIdentifiers(tableColumnsName);

            int colNums = rsmd.getColumnCount();
            while(rs.next()){                
                Object[] objects = new Object[colNums];

                for(int i=0;i<colNums;i++){
                    objects[i] = rs.getObject(i+1);
                }
                modelo.addRow(objects);
            }
            jtable.setModel(modelo);
        } catch (SQLException ex) {
            javax.swing.JOptionPane.showMessageDialog(null,"Erro 
            inesperado!","Atenção!",javax.swing.JOptionPane.ERROR_MESSAGE);
        }
    }

    public void insertField(String tabela, JTable table){
        DefaultTableModel modelo = (DefaultTableModel) table.getModel();
        ResultSet rst = null;
        ResultSetMetaData rsmd = null;
        String coluna;

        try {
            rst = stmt.executeQuery("SELECT * FROM" + tabela);
            rsmd = rst.getMetaData();
            coluna = rsmd.getColumnName(1);
            rst   = stmt.executeQuery("SELECT * FROM" + tabela + "WHERE" + rsmd.getColumnName(1) + 
                                                "= (SELECT MAX(" + rsmd.getColumnName(1) +") FROM " + tabela +");");            
        } catch (SQLException ex) {          
           javax.swing.JOptionPane.showMessageDialog(null,"Erro
           inesperado!","Atenção!",javax.swing.JOptionPane.ERROR_MESSAGE);
           ex.printStackTrace();
        }
    }
}

Este método deveria selecionar o último registro da tabela (Propriedade) e listá-lo no JTable, porém o seguinte erro é gerado:

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: 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 'FROMpropriedade' at line 1
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
        at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
        at com.mysql.jdbc.Util.getInstance(Util.java:381)
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1030)
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3515)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3447)
        at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1951)
        at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2101)
        at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2548)
        at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2477)
        at com.mysql.jdbc.StatementImpl.executeQuery(StatementImpl.java:1422)
        at func.TableToJTable.insertField(TableToJTable.java:60)
        at sysfarm.Propriedade.salvar(Propriedade.java:38)
        at sysfarm.CadastroPropriedades.btnSalvarActionPerformed(CadastroPropriedades.java:231)
        at sysfarm.CadastroPropriedades.access$100(CadastroPropriedades.java:25)
        at sysfarm.CadastroPropriedades$2.actionPerformed(CadastroPropriedades.java:90)
        at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
        at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
        at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
        at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
        at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
        at java.awt.Component.processMouseEvent(Component.java:6216)
        at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)
        at java.awt.Component.processEvent(Component.java:5981)
        at java.awt.Container.processEvent(Container.java:2041)
        at java.awt.Component.dispatchEventImpl(Component.java:4583)
        at java.awt.Container.dispatchEventImpl(Container.java:2099)
        at java.awt.Component.dispatchEvent(Component.java:4413)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4556)
        at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4220)
        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4150)
        at java.awt.Container.dispatchEventImpl(Container.java:2085)
        at java.awt.Window.dispatchEventImpl(Window.java:2475)
        at java.awt.Component.dispatchEvent(Component.java:4413)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

Espero que alguém me ajude…Obrigado
>

Leia com mais atenção a listagem do erro:

Consultando a linha 59 da classe TableToJTable:

O “FROM” está grudado no nome da tabela, tem que haver pelo menos um espaço em branco separando os dois. Também há um erro semelhante na linha 56.

hehe…esse é o tipo de erro besta que a gente comete e demora achar…muito obrigado Roger!