MyBatis 代理开发方式

介绍

  • 采用 Mybatis 的基于接口代理方式实现 持久层 的开发,这种方式是企业的主流方式。
  • 基于接口代理方式的开发只需要程序员编写Mapper 接口,Mybatis 框架会为我们动态生成实现类的对象。
    开发方式要求我们遵循一定的规范:
  • Mapper.xml映射文件中的namespace与mapper接口的全限定名相同
  • Mapper接口方法名和Mapper.xml映射文件中定义的每个statement的id相同
  • Mapper接口方法的输入参数类型和mapper.xml映射文件中定义的每个sql的parameterType的类 型相同
  • Mapper接口方法的输出参数类型和mapper.xml映射文件中定义的每个sql的resultType的类型相 同
  1. 接口
//该接口在com.zhoufengbin.mapper包下
public interface UserMapper {

    /**
     * 根据id查询用户信息
     * @param id
     * @return
     */
    public User findUserById(int id);
}
  1. UserMapper.xml 映射文件
<!--namespace 属性的值需要与接口的包名类名相同-->
<mapper namespace="com.zhoufengbin.mapper.UserMapper">
	<!--
	id 属性的值为方法的名称
	
	parameterType 属性 输入参数类型,接口方法中的id类型
	
	resultType 属性 指定输出参数类型,接口方法中的还回类型 User,当没有在核心配置文件中配置别名,则需要同包名类名
			   需要实体的属性名与表中字段名一致,才将查询结果自动封装到指定的实体类中
			   
	ResutlMap 实体的属性名与表中字段名不一致,可以使用ResutlMap实现手动封装到实体类中
			  该属性需要手动配置实体属性和表中字段的映射关系
	 -->
    <select id="findUserById" parameterType="int" resultType="com.zhoufengbin.domain.User">
        select * from user where id = #{id}
    </select>

    <!--id:该表签的唯一标识;type:封装后的实体类型-->
    <resultMap id="userResultMap" type="com.zhoufengbin.domain.User">
        <!--手动配置映射关系-->
        <!--id 标签用来配置主键-->
        <id property="idabc" column="id"></id>
        <!--result 标签用来配置普通项-->
        <result property="usernameabc" column="username"></result>
        <result property="birthday" column="birthday"></result>
        <result property="sexabc" column="sex"></result>
        <result  property="address" column="address"></result>
    </resultMap>
    <!--查寻所有用户-->
    <!-- resultMap 该属性需要手动配置实体类属性和表中的字段的映射关系-->
    <select id="findUserByid" resultMap="userResultMap">
        select * from user
    </select>
</mapper>
  1. 在核心配置文件SqlMapConfig.xml 中加载映射文件
<!--加载映射配置文件-->
    <mappers>
        <!--方式一-->
        <!--<mapper resource="com\zhoufengbin\mapper\UserMapper.xml"></mapper>-->
        <!--方式二,该方式要求映射文件路径名与接口的全包名类名相同-->
        <!--<mapper class="com.zhoufengbin.mapper.UserMapper"></mapper>-->

        <!--方式三:批量加载映射-->
        <package name="com.zhoufengbin.mapper"/>
    </mappers>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值