in

MYBATIS – Mapper XML


En el capítulo anterior, hemos visto cómo configurar MyBatis utilizando un archivo XML. Este capítulo analiza el archivo XML Mapper y varias sentencias SQL asignadas proporcionadas por él.

Antes de proceder a las sentencias mapeadas, suponga que la siguiente tabla denominada Estudiante existe en la base de datos MYSQL –

+----+-------+--------+------------+-----------+---------------+
| ID |  NAME | BRANCH | PERCENTAGE |   PHONE   |     EMAIL     |
+----+-------+--------+------------+-----------+---------------+
|  1 | Shyam |   it   |     80     | 954788457 | mail@mail.com |
+----+-------+--------+------------+-----------+---------------+

También suponga que la clase POJO también existe con el nombre Estudiante con respecto a la tabla anterior como se muestra a continuación –

public class Student {
   private int id;
   private String name;
   private String branch;
   private int percentage;
   private int phone;
   private String email;
   
   //Setters and getters   
}

Declaraciones mapeadas

Mapper XML es un archivo importante en MyBatis, que contiene un conjunto de declaraciones para configurar varias declaraciones SQL como seleccionar, insertar, actualizar y eliminar. Estas declaraciones se conocen como Declaraciones mapeadas o Declaraciones SQL mapeadas.

  • Todas las declaraciones tienen una identificación única. Para ejecutar cualquiera de estas declaraciones, solo necesita pasar la identificación apropiada a los métodos en la aplicación Java (esto se explica claramente en capítulos posteriores).

  • El archivo XML del mapeador evita la carga de escribir sentencias SQL repetidamente en la aplicación. En comparación con JDBC, casi el 95% del código se reduce utilizando el archivo Mapper XML en MyBatis.

  • Todas estas sentencias de SQL mapeado se encuentran dentro del elemento denominado. Este elemento contiene un atributo llamado ‘espacio de nombres’.

<mapper namespace = "Student">
   //mapped statements and result maps
<mapper> 

Todas las sentencias de SQL mapeado se analizan a continuación con ejemplos.

Insertar

En MyBatis, para insertar valores en la tabla, tenemos que configurar la consulta de inserción mapeada. MyBatis proporciona varios atributos para insert mapper, pero usamos principalmente id y tipo de parámetro.

identificación es un identificador único que se utiliza para identificar la declaración de inserción. Por otra parte, tipo de parámetro es el nombre de la clase o el alias del parámetro que se pasará a la instrucción. A continuación se muestra un ejemplo de inserción de consulta mapeada:

<insert id = "insert" parameterType = "Student">
   INSERT INTO STUDENT1 (NAME, BRANCH, PERCENTAGE, PHONE, EMAIL ) 
   VALUES (#{name}, #{branch}, #{percentage}, #{phone}, #{email});    
</insert>

En el ejemplo dado, usamos el parámetro de tipo Student (clase). El alumno de la clase es una clase POJO, que representa el registro del alumno con el nombre, la sucursal, el porcentaje, el teléfono y el correo electrónico como parámetros.

Puede invocar la consulta mapeada ‘insertar’ utilizando la API de Java como se muestra a continuación:

//Assume session is an SqlSession object.  
session.insert("Student.insert", student);

Actualizar

Para actualizar los valores de un registro existente usando MyBatis, se configura la actualización de la consulta mapeada. Los atributos de la consulta mapeada de actualización son los mismos que los de la consulta mapeada de inserción. A continuación se muestra el ejemplo de la consulta mapeada de actualización:

<update id = "update" parameterType = "Student">
   UPDATE STUDENT SET EMAIL = #{email}, NAME = #{name}, BRANCH = #{branch}, PERCENTAGE = #{percentage}, PHONE = #{phone} WHERE ID = #{id};
</update>

Para invocar la consulta de actualización, cree una instancia de la clase Student, establezca los valores para las variables que representan las columnas que deben actualizarse y pase este objeto como parámetro a actualizar() método. Puede invocar la consulta mapeada de actualización utilizando la API de Java como se muestra a continuación:

//Assume session is an SqlSession object.  
session.update("Student.update",student);

Borrar

Para borrar los valores de un registro existente usando MyBatis, se configura la consulta mapeada ‘borrar’. Los atributos de la consulta mapeada ‘eliminar’ son los mismos que los de las consultas mapeadas de inserción y actualización. A continuación se muestra el ejemplo de la consulta de eliminación mapeada:

<delete id = "deleteById" parameterType = "int">
   DELETE from STUDENT WHERE ID = #{id};
</delete>

Puede invocar la consulta de eliminación asignada utilizando el método de eliminación de SqlSession interfaz proporcionada por MyBatis Java API como se muestra a continuación –

//Assume session is an SqlSession object.  
session.delete("Student.deleteById", 18);

Seleccione

Para recuperar datos, se utiliza la sentencia de mapeador ‘select’. A continuación se muestra el ejemplo de una consulta mapeada de selección para recuperar todos los registros de una tabla:

<select id = "getAll" resultMap = "result">
   SELECT * FROM STUDENT; 
</select>

Puede recuperar los datos devueltos por la consulta de selección utilizando el método selectList (). Este método devuelve los datos del registro seleccionado en forma de Lista como se muestra a continuación:

List<Student> list = session.selectList("Student.getAll");

resultMaps

Es el elemento más importante y poderoso de MyBatis. Los resultados de las sentencias SELECT de SQL se asignan a objetos Java (beans / POJO). Una vez que se define el mapa de resultados, podemos referirlos desde varias sentencias SELECT. A continuación se muestra el ejemplo de una consulta de mapa de resultados; asigna los resultados de las consultas seleccionadas a la clase del estudiante –

<resultMap id = "result" type = "Student">
   <result property = "id" column = "ID"/>
   <result property = "name" column = "NAME"/>
   <result property = "branch" column = "BRANCH"/>
   <result property = "percentage" column = "PERCENTAGE"/>
   <result property = "phone" column = "PHONE"/>
   <result property = "email" column = "EMAIL"/>
</resultMap>

<select id = "getAll" resultMap = "result">
   SELECT * FROM STUDENT; 
</select>

<select id = "getById" parameterType = "int" resultMap = "result">
   SELECT * FROM STUDENT WHERE ID = #{id};
</select>

Nota – No es obligatorio escribir el columna atributo del resultMap si tanto la propiedad como el nombre de la columna de la tabla son iguales.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

error referencia circular 9507

Cómo eliminar o eliminar una referencia circular en Excel: rápido y fácil

apple touch icon@2

json: convierte un diccionario de Python en una cadena y viceversa