Popularización rápida
1. ¿Qué es mybatis?
MyBatis es un excelente marco de capa de persistencia que admite consultas SQL simples, procedimientos almacenados y mapeo avanzado.
MyBatis elimina la configuración manual de casi todos los códigos y parámetros JDBC y la encapsulación de búsqueda del conjunto de resultados. MyBatis puede usar XML o anotaciones simples para la configuración y mapeo original, mapeo de interfaces y Pojos de Java (objetos Java Old Old) en los registros en la base de datos.
MyBatis implementa la unión de la interfaz, por lo que es más conveniente de usar.
Mapeo mejorado de relación de objetos, más eficiente
MyBatis utiliza poderosas expresiones basadas en OGNL para eliminar otros elementos.
2. Arquitectura funcional
3. Proceso de ejecución
Explicación detallada del principio:
La aplicación MyBatis crea una SQLSessionFactory basada en el archivo de configuración XML. La configuración proviene de dos lugares según la configuración, uno es el archivo de configuración y el otro es la anotación del código Java y obtiene una SQLSession. SQLSession contiene todos los métodos necesarios para ejecutar SQL. Puede ejecutar directamente las declaraciones SQL asignadas a través de la instancia de SQLSession para completar la adición de datos, eliminación, modificación y consulta, envío de transacciones, etc., y cerrar SQLSession después del uso.
Echemos un vistazo a los puntos clave de este artículo. Anotaciones simples mybatis
Palabras de anotación clave:
@Insert: inserte SQL, la sintaxis es exactamente la misma que el XML Insert SQL
@Select: Query SQL, y la sintaxis es exactamente la misma que el XML SELECT SQL
@Update: actualizar SQL, y la sintaxis de XML Update SQL es exactamente la misma
@Delete: Eliminar SQL, y la sintaxis es exactamente la misma que XML Eliminar SQL
@Param: Ingrese el ginseng
@Results: Colección de resultados
@Result: Resultados
1. Modelo de dominio:
UserDo de clase pública {ID de larga privada; Nombre de usuario de cadena privada; fecha privada gmtcreate; private fecha gmtModified; public long getId () {return id;} public void setid (long id) {this.id = id;} public String getUsername () {return UserName;} public void setusername (string username) getGmtCreate () {return gmtCreate;} public void setGmtCreate (date gmtCreate) {this.gmtcreate = gmtcreate;} public fecha getgmtmodified () {return gmtmodified;} public void setgmtmodified (date gmtmodified) {this este.gmtified; gmtmodified;}}2. Definición de interfaz:
interfaz pública userdao {@insert ("inserte en t_user (gmt_create, gmt_modified, user_name) valores (ahora (), ahora (), #{username})") public int Insert (@Param ("UserName") String UserName); @Select ("Seleccionar * de t_user donde id = #{id}") público userDoDO selectByUserId (@Param ("id") ID de largo); @Update ("Update t_user set gmt_modified = now (), user_name = #{usernerne} where id = #{id}") público ints udpatebyid (@@@@Param ("" "" Username "). @Param ("id") Long Id); @Delete ("Eliminar de t_user donde id = #{id}") public int UdpateByid (@param ("id") largo id); }3. Configuración de MyBatis XML:
< interfaz-> <propiedad name = "sqlsessionFactory" ref = "sqlsessionFactory" /> <!-sqlsession fábrica-> < /bean>
De esta manera, completamos la demostración de mybatis usando anotaciones. ¿No se siente muy simple?
Si está familiarizado con MyBatis XML, en la mayoría de los casos, necesitamos mapear los nombres de campo de las tablas de la base de datos a la clase. La anotación de MyBatis también proporciona funciones de mapeo, y la sintaxis es similar.
@Select ("Seleccionar * de tsp_template Where id = #{id}")@resultados (value = {@Result (propiedad = "username", column = "user_name", javatype = string.class, jdbctype = jdbctype.varchar)}) Public UserDo SelectByid (@param ("id") Long Id);Por supuesto, lo anterior es solo que SQL ya no puede ser simple. Piénselo si tenemos este requisito, actualizamos la información del usuario y esperamos actualizar el valor de atributo especificado. En otras palabras, generamos SQL dinámicamente como XML. Entonces no podemos usar simplemente y aproximadamente la anotación @Update. Afortunadamente, el poderoso mybatis también proporciona un ensamblaje dinámico de SQL.
SQL dinámico
La relación correspondiente es la siguiente
@Insert: @insertProvider
@Select: @SelectProvider
@Update: @UpdateProvider
@Delete: @DeletEpRovider
Los cuatro identificadores de anotación de proveedores usan SQL dinámico y usan formato de sintaxis:
@UpdateProvider (type = userProvider.class, método = "Updateatesql")
Cómo construir SQL dinámico
Public Class UserProvider {/*** UDPATE* @param userdo userdo* @return*/public String UpdateSQl (final userdo userdo) {return new sql () {{update ("t_user"); set ("gmt_modified = now ()"); if (userdo.getUsername ()! = null) {set ("" "" "User (" "" User ("" "User (" "" User ("" User ("" "" User ("" "" #{username} ");} where (" id = #{id}} ");}}. toString ();}}Los puntos de conocimiento mencionados en este artículo son relativamente básicos. Si necesita tener una comprensión profunda, consulte el documento oficial del sitio web o lea el código fuente.
Resumir:
1. ¿Cómo elegir XML y anotaciones? Varía de persona a persona. Todos tienen sus propios hábitos de codificación. XML y las anotaciones tienen sus propias ventajas y desventajas. Las desventajas de XML: cuando se cambian los atributos del modelo, debe cambiarse de DO a DAO a XML. Será un dolor pensar en ello ~ xml también tiene ventajas. La reutilización de fragmentos SQL es conveniente y la sintaxis es accesible. A diferencia de las anotaciones, debe construir una declaración dinámica y crear una clase. Además, cuando se hace referencia a un segmento de SQL en varios lugares, el código parece redundante. En este momento, XML debe usarse para extraer y usarlo juntos. Me quejé de mybatis anotación, ¿no sería esa anotación inútil? No, MyBatis es adecuado para escenarios en los que los atributos del modelo a menudo se cambian, ya que se puede combinar con la reflexión y SQL construida dinámicamente (las ideas personales puramente sin sentido, deben realizarse, y se hará otro día). Se puede decir que las ventajas de la anotación de MyBatis compensan las deficiencias de XML bien. Los dos se complementan entre sí ~
Lo anterior es un comienzo rápido para las anotaciones de desarrollo de MyBatis introducidas 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!