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.
-
Abra el archivo CourseMapper.java
ubicado en el directorio /org/lanqiao/mapper/
.
-
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);
-
Abra el archivo CourseMapper.xml
ubicado en el directorio /org/lanqiao/mapper/
.
-
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>
-
Abra el archivo MyBatisTest.java
ubicado en el directorio /org/lanqiao/test/
.
-
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.