Operar sobre la tabla de cursos

JavaScriptJavaScriptBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este proyecto, aprenderás a utilizar MyBatis para realizar diversas operaciones en una tabla de cursos, incluyendo la consulta de información de cursos, la actualización del profesor del curso y la consulta masiva de datos de cursos.

👀 Vista previa

Ejemplo de consulta de tabla de cursos
Ejemplo de SQL dinámico de MyBatis
Ejemplo de consulta masiva

🎯 Tareas

En este proyecto, aprenderás:

  • Cómo consultar información de cursos cuyo nombre de curso comienza con una "C" mayúscula utilizando SQL dinámico
  • Cómo actualizar el profesor de enseñanza de un curso específico mientras se mantienen los demás inalterados, utilizando SQL dinámico
  • Cómo consultar información de cursos en lote con una lista de números de curso, utilizando SQL dinámico

🏆 Logros

Después de completar este proyecto, podrás:

  • Utilizar los parámetros de entrada y salida de MyBatis
  • Implementar SQL dinámico en MyBatis
  • Utilizar el mapeo de resultados para especificar el mapeo del conjunto de resultados
  • Utilizar la etiqueta <foreach> para consultas masivas

Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL javascript(("JavaScript")) -.-> javascript/AdvancedConceptsGroup(["Advanced Concepts"]) javascript(("JavaScript")) -.-> javascript/DOMManipulationGroup(["DOM Manipulation"]) javascript(("JavaScript")) -.-> javascript/NetworkingGroup(["Networking"]) javascript(("JavaScript")) -.-> javascript/BasicConceptsGroup(["Basic Concepts"]) javascript/BasicConceptsGroup -.-> javascript/obj_manip("Object Manipulation") javascript/AdvancedConceptsGroup -.-> javascript/error_handle("Error Handling") javascript/DOMManipulationGroup -.-> javascript/dom_select("DOM Selection") javascript/DOMManipulationGroup -.-> javascript/dom_manip("DOM Manipulation") javascript/DOMManipulationGroup -.-> javascript/dom_traverse("DOM Traversal") javascript/NetworkingGroup -.-> javascript/http_req("HTTP Requests") javascript/NetworkingGroup -.-> javascript/json("JSON") javascript/NetworkingGroup -.-> javascript/api_interact("API Interaction") subgraph Lab Skills javascript/obj_manip -.-> lab-300384{{"Operar sobre la tabla de cursos"}} javascript/error_handle -.-> lab-300384{{"Operar sobre la tabla de cursos"}} javascript/dom_select -.-> lab-300384{{"Operar sobre la tabla de cursos"}} javascript/dom_manip -.-> lab-300384{{"Operar sobre la tabla de cursos"}} javascript/dom_traverse -.-> lab-300384{{"Operar sobre la tabla de cursos"}} javascript/http_req -.-> lab-300384{{"Operar sobre la tabla de cursos"}} javascript/json -.-> lab-300384{{"Operar sobre la tabla de cursos"}} javascript/api_interact -.-> lab-300384{{"Operar sobre la tabla de cursos"}} end

Consultar información de cursos

En este paso, aprenderás a consultar la información de cursos cuyo nombre de curso comienza con una "C" mayúscula utilizando SQL dinámico.

  1. Abra el archivo CourseMapper.java ubicado en el directorio /org/lanqiao/mapper/.

  2. Implemente el método selectCourses en la interfaz CourseMapper. Este método debe aceptar un parámetro Map<String, Object> para almacenar los parámetros de entrada.

List<Course> selectCourses(Map<String, Object> params);
  1. Abra el archivo CourseMapper.xml ubicado en el directorio /org/lanqiao/mapper/.

  2. Implemente la sentencia SQL selectCourses en el espacio de nombres CourseMapper. Utilice SQL dinámico para comprobar si el parámetro courseName está vacío. Si no está vacío, agregue una condición para filtrar los nombres de curso que empiecen con una "C" mayúscula.

<select id="selectCourses" resultMap="courseResultMap" parameterType="java.util.Map">
    SELECT * FROM course
    <where>
        <if test="courseName!= null and courseName!= ''">
            AND cName LIKE #{courseName}
        </if>
    </where>
</select>
  1. Defina el courseResultMap en el archivo CourseMapper.xml para especificar el mapeo del conjunto de resultados.
<resultMap id="courseResultMap" type="org.lanqiao.pojo.Course">
    <id property="cNo" column="cNo"/>
    <result property="cName" column="cName"/>
    <result property="teacher" column="teacher"/>
</resultMap>
  1. Abra el archivo MyBatisTest.java ubicado en el directorio /org/lanqiao/test/.

  2. Implemente el método de prueba testSelectCourses para probar la funcionalidad de selectCourses.

@Test
public void testSelectCourses() {
    CourseMapper mapper = session.getMapper(CourseMapper.class);
    Map<String, Object> params = new HashMap<>();
    params.put("courseName", "C%");
    List<Course> courses = mapper.selectCourses(params);
    System.out.println(courses);
}

Actualizar profesor del curso

En este paso, aprenderás a actualizar el profesor de enseñanza del curso con el número de curso "7" a "Blue" utilizando SQL dinámico.

  1. Abra el archivo CourseMapper.java ubicado en el directorio /org/lanqiao/mapper/.

  2. Implemente el método updateTeacher en la interfaz CourseMapper. Este método debe aceptar un parámetro Map<String, Object> para almacenar los parámetros de entrada.

void updateTeacher(Map<String, Object> params);
  1. Abra el archivo CourseMapper.xml ubicado en el directorio /org/lanqiao/mapper/.

  2. Implemente la sentencia SQL updateTeacher en el espacio de nombres CourseMapper. Utilice SQL dinámico para comprobar si el parámetro teacherName está vacío. Si no está vacío, actualice la columna teacher para el curso con el courseId especificado.

<update id="updateTeacher" parameterType="java.util.Map">
    UPDATE course
    <set>
        <if test="teacherName!= null and teacherName!= ''">
            teacher = #{teacherName},
        </if>
    </set>
    WHERE cNo = #{courseId}
</update>
  1. Abra el archivo MyBatisTest.java ubicado en el directorio /org/lanqiao/test/.

  2. Implemente el método de prueba testUpdateTeacher para probar la funcionalidad de updateTeacher.

@Test
public void testUpdateTeacher() {
    CourseMapper mapper = session.getMapper(CourseMapper.class);
    Map<String, Object> params = new HashMap<>();
    params.put("courseId", 7);
    params.put("teacherName", " Blue");
    mapper.updateTeacher(params);
    session.commit();
}

Consulta masiva de información de cursos

En este paso, aprenderás a realizar una consulta masiva de la información de cursos con los números de curso "1,2,3" utilizando SQL dinámico.

  1. Abra el archivo CourseMapper.java ubicado en el directorio /org/lanqiao/mapper/.

  2. Implemente el método selectCoursesByIds en la interfaz CourseMapper. Este método debe aceptar un parámetro Map<String, Object> para almacenar los parámetros de entrada.

List<Map<String, Object>> selectCoursesByIds(Map<String, Object> params);
  1. Abra el archivo CourseMapper.xml ubicado en el directorio /org/lanqiao/mapper/.

  2. Implemente la sentencia SQL selectCoursesByIds en el espacio de nombres CourseMapper. Utilice la etiqueta <foreach> para iterar sobre la lista ids y construir la cláusula IN.

<select id="selectCoursesByIds" resultMap="courseResultMap" parameterType="java.util.Map">
    SELECT * FROM course WHERE cNo IN
    <foreach collection="ids" item="id" open="(" separator="," close=")">
        #{id}
    </foreach>
</select>
  1. Abra el archivo MyBatisTest.java ubicado en el directorio /org/lanqiao/test/.

  2. Implemente el método de prueba testSelectCoursesByIds para probar la funcionalidad de selectCoursesByIds.

@Test
public void testSelectCoursesByIds() {
    CourseMapper mapper = session.getMapper(CourseMapper.class);
    List<Integer> ids = Arrays.asList(1, 2, 3);
    Map<String, Object> params = new HashMap<>();
    params.put("ids", ids);
    List<Map<String, Object>> coursesByIds = mapper.selectCoursesByIds(params);
    System.out.println(coursesByIds);
}

Ejecución

Para asegurarse de que el código funcione, tenga cuidado de introducir las clases relevantes en el código.

CourseMapper.java:

import org.lanqiao.pojo.Course;
import java.util.List;
import java.util.Map;

MyBatisTest.java:

import java.util.Arrays;
import java.util.HashMap;

Finalmente, puede compilar y ejecutar el código en la terminal y comprobar los archivos de prueba con Maven, utilizando los siguientes comandos:

cd MyBatisCourseDemo03
mvn test

Puede consultar 👀 Vista previa para una representación en ejecución.

✨ Revisar Solución y Practicar

Resumen

¡Felicitaciones! Has completado este proyecto. Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.