mybatis 查询碰到坑总结
1,mybatis回报错,类型错误
loginName=null
<select id="getByLoginName" parameterType="string">
select * from user t where login_name=#{loginName}
</select >
2,如果ywh是空,那就查询所有(一张表有100万条数据全部会加载过来,内存会溢出)
ywh=null,mybatis不会主动拼接
List<ProjectManagerInfo> projectManagerInfoList = projectManagerInfoService.selectList(new EntityWrapper<ProjectManagerInfo>()
.eq("ywh", ywh);
3,查询没有对应的map,CompanyAgent的属性虽然有注解对应 @TableField("login_Name")
<select id="getByLoginName" parameterType="string" resultType="com.greatmap.netsign.model.common.CompanyAgent">
select * from T_COMPANY_AGENT where login_Name=#{loginName}
</select>
问题, 这是查询所有字段,便利慢,特别是clob字段,10条数据可能要10秒
<select id="getByLoginName" parameterType="string" resultType="com.greatmap.netsign.model.common.CompanyAgent">
select login_name,sex,create_time from T_COMPANY_AGENT where login_Name=#{loginName}
</select>
问题,没有映射baseMap,其他字也会赋值,默认会填充null,没有必须
<resultMap id="BaseResultMap" resultType="com.greatmap.netsign.model.common.CompanyAgent">
<result column="ID" property="id" />
<result column="sex" property="sex" />
<result column="create_time" property="createTime" />
</resultMap>
问题,没有指定类型,如creataTime是日期公司,框架要便利数据类型,在匹配上,浪费时间和性能