Mapper代理开发
1.定义与SQL映射文件同名的Mapper接口,并且将Mapper接口和SQL映射文件放置在同一目录下
2.设置SQL映射文件的namespace属性为Mapper接口全限定名
3.在Mapper 接口中定义方法,方法名就是SQL映射文件中sql语句的id,并保持参数类型和返回值 类型一致
4.编码
1.通过SqlSession 的 getMapper方法获取 Mapper接口的代理对象
2.调用对应方法完成sql的执行
细节:如果Mapper接口名称和SQL映射文件名称相同,并在同一目录下,则可以使用包扫描的方式简 。化SQL映射文件的加载
动态SQL
·当你需要在多个互斥的条件下选择一个来生成SQL片段时。
<select id=" " resultMap=" ">
select * from tb_db
<where> //无otherwise时加where
<choose> //相当于switch
<when test=""> //相当于case
</when>
<otherwise> //相当于default
</otherwise>
</choose>
</where>
</select>
-
当需要在WHERE子句中添加多个条件时,每个条件可以使用单独的
<if>
标签来实现。
<select id=" " resultMap=" ">
select * from tb_db
<where> //自动判断加and
<if test="">
</if>
<if test="">
</if>
</where>
</select>
mybatis接口方法接受参数时
使用@Param注解,可以替换掉底层对参数名封装成arg、param,可读性更高。
使用注解开发
@Select("select * from tb_db where id = #{id}")
public User selectByid(int id);
注解完成简单功能,会更加方便;
配置文件完成复杂功能。