mybatis中collection中的ofType="String"时
DTO:
package com.example.mybatis.entity;
import java.util.List;
/**
* 统计部门下的员工名称(只查询出员工名称)
*/
public class ListString {
// 部门id
private int deptId;
// 员工名称集合
private List<String> empNames;
public ListString() {
}
public ListString(int deptId, List<String> empNames) {
this.deptId = deptId;
this.empNames = empNames;
}
// getter
....
// setter
....
}
mapper:
<resultMap id="deptWithEmpNameMap" type="com.example.mybatis.entity.ListString">
<result property="deptId" jdbcType="BIGINT" column="dept_id"/>
<collection property="empNames" ofType="String" >
<id column="emp_name"/>
</collection>
</resultMap>
<select id="listStringTest" parameterType="Integer" resultMap="deptWithEmpNameMap">
SELECT deptId as 'dept_id',name as 'emp_name'
FROM employee WHERE deptId = #{deptId};
</select>
dao:
@Mapper
public interface EmployeeMapper {
/**
* 统计部门下的员工名称(只查询出员工名称)
*/
ListString listStringTest(Integer deptId);
}
表中数据:
测试:
/**
* 统计部门下的员工名称(只查询出员工名称)
*/
@Test
public void deptWithEmpNameTest(){
ListString listString = employeeMapper.listStringTest(1);
System.out.println(listString);
}
输出结果:
ListString{deptId=1, empNames=[小红1, 小红2, 小红3, 小红4, 小红5, 小红6, 小红7, 小红8, 小红9, 小红10]}