Primer paso:
Agregar propiedades " useGeneratedKeys " y " keyProperty " en el archivo mapper myBatis, ¡donde keyProperty es el nombre de la propiedad del objeto Java!
<insert id = "insertar" parametertype = "Spares" useGeneratedKeys = "true" keyproperty = "id"> Insertar en Spares (Spares_ID, Spares_Name, Spares_Type_id, Spares_Spec) Values (#{id},#{nombre},#{typeid},#{spec}) </insertsPaso 2:
Después de que MyBatis ejecuta la instrucción Insertar, asignará automáticamente el valor de autoinforme a la ID de propiedad de los repuestos de objeto. ¡Por lo tanto, se puede obtener a través del método Getter correspondiente a los repuestos!
/** * Se agregaron piezas de repuesto * @author hellostory * @param Spares * @return */@RequestMapping (valor = "/insert") @ResponseBody public JsonResponse Insert (Spares Spares) {int count = Sparesservice.insert (Spares); System.out.println ("Insertar en total" + Count + "Record!" + "/N El valor de auto-crecimiento de la clave principal del registro que se acaba de insertar es:" + Spares.getID ());PS: MyBatis devuelve la ID de crecimiento propio de los datos insertados
Hoy, la prueba informó un error. El fenómeno es que los usuarios recién registrados pueden ver el informe de todos. No hay problema con los usuarios antiguos. Al verificar el registro, se descubrió que la ID del usuario recién registrado era nula, por lo que se realizó una consulta de datos válida de tabla completa. Sin embargo, la clave principal de la tabla no puede estar vacía, entonces, ¿cómo puede ser una nueva ID de usuario registrada ser nula? La razón es que el código en la capa de servicio devuelve directamente el objeto de parámetro, y el XML no hace ninguna configuración.
La solución específica es configurar el método de inserción en XML
useGeneratedKeys = "true" keyProperty = "RegisterId"
El valor de KeyProperty corresponde al atributo clave principal en el objeto Entity VO
Los detalles son los siguientes:
<code> @Override public Registers Create (Registers R) {RegistersMapper.insert (r); regresar r; } </code>El método de insertar de registroMapper.xml es el siguiente:
<Code> <insert id = "insertar" keyproperty = "registreDID" parametertype = "com.ciji.zzaService.pojo.base.regers" usadoGeneratedKeys = "true">
Ejecutar la declaración de inserción normal
</sert> </code>
De esta manera, puede obtener la clave primaria de crecimiento personal de los datos recién insertados en la capa del controlador.
Con respecto al significado de agregar dos atributos al XML, la explicación en línea es la siguiente:
Usar GeneratedKeys
(Utilizado solo para insertar) Esto le dice a MyBatis que use el método GetGeneratedKeys de JDBC para obtener las claves primarias generadas internamente por datos (como el campo de incremento automático de sistemas de gestión de bases de datos como MySQL y SQL Server). Valor predeterminado: falso.
KeyProperty
(Utilizado solo para insertar) Marque una propiedad, MyBatis establecerá su valor a través de GetGeneratedKeys o a través del elemento infantil de KeyKey de la instrucción Insertar. Valor predeterminado: no configurado.
Resumir
Lo anterior es el valor de campo de crecimiento personal (ID) del registro de inserción introducido por el editor. Espero que sea útil para todos. Si tiene alguna pregunta, déjame un mensaje y el editor responderá a todos a tiempo. ¡Muchas gracias por su apoyo al sitio web de Wulin.com!