ASP源码.NET源码PHP源码JSP源码JAVA源码DELPHI源码PB源码VC源码VB源码Android源码
当前位置:首页 >> 数据库 >> MySql >> [mybatis]Mapper接口代理开发

[mybatis]Mapper接口代理开发(1/2)

来源:网络整理     时间:2016-03-08     关键词:

本篇文章主要介绍了"[mybatis]Mapper接口代理开发",主要涉及到方面的内容,对于MySql感兴趣的同学可以参考一下: Mapper代理实现思想:1. 首先映射文件的namespace命名空间必须是Mapper的完全限定名2. 其次每个statement的id必须与Mapper里...

Mapper代理实现思想:
 1. 首先映射文件的namespace命名空间必须是Mapper的完全限定名
 2. 其次每个statement的id必须与Mapper里的方法名一致
 3. 然后映射文件中的输入参数与输出参数又与Mapper里的方法对应
 4. 最后根据映射文件中的每个statement标签头判断是执行哪个CRUD

所以Mapper代理在实现接口中的方法时,
1 : 代理方法的返回值,
2 : 方法体中Session要执行哪个方法
3 : 以及方法体中Session执行CRUD方法的第一个参数(statement的id),第二个参数( 4:代理方法传参进来)
就都明确了
/*
     * UserMapper接口开发规范 :
     *      1 : 接口方法名为UserMapper.xml中statement的id值
     *      2 : 接口方法参数为UserMapper.xml中parameterType对应的值
     *      3 : 接口方法返回值为UserMapper.xml中resultType对应的值
     *//*
     * 代理对象内部怎样调用selectOne或selectList?
     * 
     * 1 : 如果mapper方法返回单个pojo对象(非集合对象)
     *       代理对象内部掉用selectOne()
     * 2 : 如果mapper方法返回集合对象
     *     代理对象内部调用selectList()
     * 
     *//*
     * mapper接口方法参数只能有一个是否影响开发 ?
     * 系统框架中,dao层的代码是被业务层公用的,
     * 即使mapper接口方法只能有一个参数,
     * 可以使用包装类型的pojo满足不同的业务方法的需求
     */

首先是UserMapper.xml

<mappernamespace="mapper.UserMapper" ><selectid="findUserById"parameterType="int"resultType="Bean.User">
        SELECT * FROM USER WHERE ID=#{id}
    select><selectid="findUserByName"parameterType="java.lang.String"resultType="Bean.User">
        SELECT * FROM USER WHERE USERNAME LIKE '%${value}%'
    select><insertid="insertUser"parameterType="Bean.User">
        insert into user(id,username,birthday,sex,address)
                value(#{id},#{username},#{birthday},#{sex},#{address})
    insert><deleteid="deleteUser"parameterType="java.lang.Integer">
        delete from user where id = #{id}
    delete><updateid="updateUser"parameterType="Bean.User">
        update user
        set username=#{username},birthday=#{birthday},sex=#{sex},address=#{address}
        where id = #{id}
    update>mapper>

Mapper代理

import Bean.User;

/**
 * @Description: UserMapper接口
 * @author 佳。
 * @date 2016年3月8日
 */publicinterfaceUserMapper {//根据id查找用户public User findUserById (int id) ;

    //根据名字查找用户集合public List findUserByName (String username) ; 

    //插入一条记录publicvoidinsertUser (User user) ; 

    //根据id删除一个用户publicvoiddeleteUser (int id);

    //根据id删除一个用户publicvoidupdateUser (User user) ; 

}

MapperTest测试类

相关图片

相关文章