SQL映射器Mapper
MyBatis基于动态代理机制,让我们无需再编写Dao的实现。
传统Dao接口,现在名称统一以Mapper结尾,还有我们映射器配置文件要和映射器在同一个包.:
IDeptDao---->DeptMapper.java—DeptMapper.xml(namespace直接写DeptMapper.java的全限定名)
映射文件:
<mapper namespace="cn.itsource.mybatis.mapper.UserMapper">
<select parameterType=”long” resultType=”User”>
Select * from t_user where id = #{id}
</select>
</mapper>
实现:
UserMapper mapper = sqlSession.getMapper(UserMapper.class)
高级查询
定义映射接口-EmployeeMapper
List query(EmployeeQuery query);
写映射文件并且导入核心配置文件
注意:
模糊查询要用mysql中字符串拼接函数concat
and ( name like concat(’%’,#{keywords},’%’) or password like ‘%${keywords}%’ )
如果有特殊符号可以使用转义符 或者使用CDATA
如果语句被多个地方调用可以使用sql include完成抽取和调用
关联关系
many2one
1.保存(永远先保存1方,再保存多方)
2.查询最终封装结果值
1.关联表查询
2.子查询(把主查询出来之后,循环查询辅表)
one2many
1.保存(永远先保存1方,再保存多方)
2.查询最终封装结果值
1.关联表查询
2.子查询(把主查询出来之后,循环查询辅表)