Primeiro passo:
Adicione Propriedades " useGeneratedKeys " e " keyProperty " no arquivo Mybatis Mapper, onde keyProperty é o nome da propriedade do objeto Java!
<insert id = "insert" parametertype = "poupar" usegeneratedkeys = "true" keyproperty = "id"> inserir em peças de reposição (spares_id, spares_name, spares_type_id, spares_spec) (#{id},#{name}, {{typeEtapa 2:
Depois que o Mybatis executar a instrução Insert, ele atribuirá automaticamente o valor de auto-aumento ao ID da propriedade do objeto poupa. Portanto, pode ser obtido através do método getter correspondente a peças de reposição!
/** * Adicionado peças sobressalentes * @Author Helostory * @param Spares * @return */@RequestMapping (value = "/insert") @Responsebody public jsonResponse insert (peças de reposição) {Int Count = SparesVice.insert (Spares); System.out.println ("Inserir no total" + contagem + "registro!" + "/N O valor principal de auto-crescimento da chave do registro que apenas inserido é:" + Spares.getId ());PS: Mybatis retorna o ID da auto-crescimento dos dados inseridos
Hoje, o teste relatou um bug. O fenômeno é que os usuários recém -registrados podem ver o relatório de todos. Não há problema com usuários antigos. Ao verificar o log, verificou -se que o ID do usuário recém -registrado era nulo; portanto, uma consulta de dados válida da tabela completa foi realizada. No entanto, a chave primária da tabela não pode estar vazia; portanto, como um novo ID de usuário registrado pode ser nulo? O motivo é que o código na camada de serviço retorna diretamente o objeto do parâmetro e o XML não faz nenhuma configuração.
A solução específica é configurar o método de inserção no XML
useGeneratedKeys = "true" keyProperty = "RegisterID"
O valor KeyProperty corresponde ao atributo principal principal no objeto da entidade Vo
Os detalhes são os seguintes:
<Code> @Override public Registres Create (Registres R) {RegisterSmapper.insert (R); retornar r; } </code>O método de inserção do registroMapper.xml é o seguinte:
<Code> <insert id = "insert" keyproperty = "registerId" parametertype = "com.ciji.zzaservice.pojo.base.registers" usadosgeneratedkeys = "true">
Executar a declaração de inserção normal
</insert> </code>
Dessa forma, você pode obter a chave primária de auto-crescimento dos dados recém-inseridos na camada do controlador.
Em relação ao significado de adicionar dois atributos ao XML, a explicação online é a seguinte:
UseGeneratedKeys
(Usado apenas para inserção) Isso diz ao Mybatis para usar o método GetGeneratedKeys do JDBC para buscar as chaves primárias geradas internamente por dados (como o campo de incremento automático de sistemas de gerenciamento de banco de dados, como o MySQL e o SQL Server). Valor padrão: false.
KeyProperty
(Usado apenas para inserção) Marque uma propriedade, o mybatis definirá seu valor através do GetGenerated Keys ou através do elemento filho selecionKey da instrução Insert. Padrão: não definido.
Resumir
O exposto acima é o valor do campo de auto-crescimento (ID) do registro de inserção introduzido pelo editor. Espero que seja útil para todos. Se você tiver alguma dúvida, deixe -me uma mensagem e o editor responderá a todos a tempo. Muito obrigado pelo seu apoio ao site wulin.com!