mybatis学习:四

来源:互联网 发布:人防大数据 编辑:程序博客网 时间:2024/05/01 17:38

本小节描述mybatis中如何定义参数
在mybatis中定义参数的方法有:
a、方法为一个参数时,使用#{name},其中name是什么都可以,但要符合变量命名规范

    /**     * 方法为一个参数时,使用#{name},其中name是什么都可以     * @param id     * @return     */    Book loadById(int id);
    <select id="loadById" resultType="Book" parameterType="int">        select * from book where bookId=#{name}    </select>

b、方法参数为一个实体类时,使用#{属性名}

    /**     * 方法参数为一个实体类时,使用#{属性名}     * @param b     * @return     */    int save(Book b);
    <insert id="save" parameterType="Book">        insert into Book(bookName,bookAuthor,BookPrice,bookInfo)           values(#{bookName},#{bookAuthor},#{bookPrice},#{bookInfo})    </insert>

c、方法为多个参数时,可以使用#{index}来标识是第几个参数,index从0开始

    /**     * 方法为多个参数时,可以使用#{index}来标识是第几个参数     * @param name     * @param author     * @return     */    Book loadByNameAndAuthor(String name,String author);
    <select id="loadByNameAndAuthor" resultType="Book">        select * from book where bookName=#{0} and bookAuthor = #{1}    </select>

d、在接口中参数前加@Param(“name”)来标识参数的名称

    /**     * 方法为多个参数时,可以在接口中参数前加@Param("name")来标识参数的名称     * @param name     * @param author     * @return     */    Book loadByNameAndAuthor2(@Param("name")String name,@Param("author")String author);
    <select id="loadByNameAndAuthor2" resultType="Book">        select * from book where bookName=#{name} and bookAuthor = #{author}    </select>

e.使用<parameterMap>,使用时传入一个map参数,必须含有对应的key

    /**     * 使用map作为参数     * @param map     * @return     */    Book loadByNameAndAuthor3(Map<String, Object> map);
    <parameterMap type="map" id="mapParams">        <parameter property="name" />        <parameter property="author" />    </parameterMap>    <select id="loadByNameAndAuthor3" parameterMap="mapParams" resultType="Book">        select * from book where bookName=#{name} and bookAuthor = #{author}    </select>