1.Mapper接口创建

  创建Mapper包,所有的Mapper接口放在该包下。Mapper接口中声明将要实现的方法,在接下来的Mapper.xml文件中实现对应方法。

2.Mapper.xml创建

  (1)在resources下创建与Mapper接口路径相同的包。如Mapper接口路径为“com.example.demo.Mapper”,则xml文件包路径因与之相同“com.example.demo.Mapper”,位置相同mybatis才能识别。

  (2)xml文件首先声明实现哪个接口,如下

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--namespqce:对应Mapper接口文件位置-->
<mapper namespace="com.mybatis.Mapper.UserMapper">

</mapper>

  (3)实现相应接口,进行sql操作。id:接口方法名;resultType:返回类型,可不写;useGeneratedKeys:true或false,是否返回主键;keyProperty:返回主键对应表列名,如id。

   <!--1.属性名和实体字段不同时可以用过取别名的方式手动映射-->
    <!--2.sql片段-->
    <!--
        <sql id="selectall">
            id as use_id ......
        </sql>
    -->
    <!--3.resultmap映射
    column:表字段名
    property:实体属性名
    <resultMap id="userResultMap" type="user">
        <result column="id" property="user_id"></result>
    </resultMap>
    -->

    <!--
     #:替换为?进行匹配,防止sql注入   $:拼接sql,存在sql注入
     表名列名动态设定只能使用$
     -->

    <!--
    1.转义字符
    <: &lt

    2.CDATA区
    <![CDATA[

        ]]>
    -->
    <!--<select id="selectall" resultType="User">-->
    <!--select * from user-->
    <!--</select>-->

    <select id="selectById" resultType="User" parameterType="int">
        select * from user where id
        <![CDATA[
          <
        ]]>
         #{id}
    </select>

    <!--多条件查询-->
    <!--<select id="selectByCondition" resultType="User">-->
        <!--select * from user-->
         <!--where name like #{name}-->
          <!--or number like #{number}-->
    <!--</select>-->

    <!--动态条件查询-->
    <select id="selectByCondition" resultType="User">
        select * from user
        <where>
            <if test="name != null and name != ''">
                name like #{name}
            </if>
            <if test="number != null and number != ''">
                and number like #{number}
            </if>
        </where>
    </select>

    <select id="selectByConditionByObject" resultType="User">
        select * from user
        <where>
            <choose>
                <when test="name !=null and name != ''">
                    name = #{name}
                </when>
                <when test="number !=null and number != ''">
                    number = #{number}
                </when>
            </choose>
        </where>
    </select>

    <!--useGeneratedKeys="true" keyProperty="id":主键返回-->
    <insert id="add" parameterType="User" useGeneratedKeys="true" keyProperty="id">
        insert into user(id,name,password,number)
        values (#{id},#{name},#{password},#{number})
    </insert>

    <!--update可以使用<set></set>标签与where标签类似-->

    <delete id="deleteById">
        delete from user where id = #{id}
    </delete>

    <!--批量删除
    mybatis会将传入的数组封装为Map集合
    默认key的名称为array,使用@param可以改变默认名称
    separator:分隔符
    open:添加前缀
    close:添加后缀
    -->
    <delete id="deleteByIds">
        delete from user where id
        in
        <foreach collection="ids" item="id" separator="," open="(" close=")">
            #{id}
        </foreach>
    </delete>

 

posted on 2022-09-12 14:41  恒heng  阅读(116)  评论(0)    收藏  举报