last_insert_id()

Olá pessoal,
boa noite a todos,
eu estou com uma dúvida aqui
não estou conseguindo resolver
será que alguém poderia me dar uma
ajuda?

Eu tenho um metodo:

public int idUltimoTecnicoInserido() throws LAFQADaoException {
            ResultSet rs = null;

            try {
                stmt = this.conn.createStatement();
                int idTecnico = -1;
                rs = stmt.executeQuery("SELECT LAST_INSERT_ID() FROM tecnico");

                if (rs.next()) {
                    idTecnico = rs.getInt(1);
                }
                else {
                    throw new LAFQADaoException("Erro ao pegar o idTecnico");
                }

                rs.close();
                stmt.close();
                return idTecnico;
            }
            catch (Exception sqle) {
                sqle.printStackTrace();
                throw new LAFQADaoException("Erro ao inserir dados do Técnico" + sqle);
            }
...
}

Mas na hora que eu faço isso:

tecnico.setIdTecnico(tecnicoDao.idUltimoTecnicoInserido());
System.out.println("LAST ID Tecnico = " + tecnicoDao.idUltimoTecnicoInserido());

o valor impresso é 0(zero),
mas a minha tabela de Tecnico já está populada,
alguém tem alguma idéia do que poderia estar
acontecendo?

[]'s.

O LAST_INSERT_ID() no mysql traz para você o ultimo numero que ele usou para fazer o autoincremente.
Para que ele retorne o valor você tem que chamar ele apos um insert na mesma conexão.

Para retornar o ultimo numero da tabela terá que utilizar o max.

select max(campo) from teste;
para pegar o proximo some 1 no resultado do select acima.