mybatis常规SQL语句使用方法---xml映射文件SQL增删改查大全(更新中)

mybatis常规SQL语句使用方法

---xml映射文件SQL增删改查大全 

<!--内容为注释类容-->

<?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">

<!--namespace是mybaits映射文件的唯一标识,与接口对应-->
<mapper namespace="com.jt.mapper.UserMapper">


   <!--1.用户新增-->
    <insert id="方法名" >
        insert into demo_user(id,name,age,sex)
          value (null,#{name},#{age},#{sex})
    </insert>




    <!--2.用户修改-->
    <update id="方法名">
        update demo_user set name=#{name},age=#{age} where id=#{id}
    </update>




    <!--3.用户删除-->
    <delete id="方法名">
        delete from demo_user where id=#{id}
    </delete>




    <!--resultType使用  对象的属性名称与表中的字段不一样,查询时需要使用resultType-->
    <!--4.用户查询  取中间值查询 转义符号-->
    <select id="方法名" resultType="返回对象的路径">
        <![CDATA[
        select *from demo_user where age >#{minAge}  and  age < #{maxAge}
          ]]>
    </select>




    <!--5.模糊查询-->
    <select id="方法名" resultType="返回对象的路径的">
        select * from demo_user where name like "%"#{name}"%"
    </select>





    <!--6.简化sql 公司需要高效查询,中间需要些字段-->
    <select id="方法名" resultType="返回对象的路径的">

        select <include refid="user_cloimn"/>  from demo_user
    </select>

    <sql id="user_cloimn">
        id,name,age,sex
    </sql>





    <!--7.mybatis的集合操作   数组-->
    <select id="方法名" resultType="返回值的对象路径">
        select  * from demo_user where id in
            <foreach collection="array" open="(" close=")"
                     separator="," item="id">
                #{id}
            </foreach>
    </select>




    <!--8.mybatis的集合操作   List集合-->
    <select id="方法名" resultType="返回值的对象路径">
        select  * from demo_user where id in
        <foreach collection="list" open="(" close=")"
                 separator="," item="id">
            #{id}
        </foreach>
    </select>




    <!--9.mybatis的集合操作  map集合-->
    <select id="方法名" resultType="返回值的对象路径">
       select * from demo_user where id in
        <foreach collection="key" open="(" close=")" separator="," item="id">
            #{id}
        </foreach>
    </select>




    <!--因为用户行为不可以控制,有时要求的传入的参数要求是多位,但是参数传的少需要用到动态sql-->
    <!--10.动态sql  用if判断,如果为空就不执行   查询-->
    <select id="方法名" resultType="返回值的对象路径">
        select * from demo_user
           <where>
                <if test="id!=null" >id=#{id}</if>
                <if test="name!=null">and name=#{name}</if>
                <if test="age!= null">and age=#{age}</if>
                <if test="sex!=null">and sex=#{sex}</if>
           </where>
    </select>





    <!--11.动态sql  用if判断,如果为空就不执行   修改-->
    <update id="方法名">
        update demo_user
            <set>
                <if test="name!=null">name=#{name}, </if>
                <if test="age!=null">age=#{age},</if>
               <if test="sex!=null"> sex=#{sex}</if>
            </set>
        where id=#{id}
    </update>




    <!--12.动态sql  分支结构  条件选择一个  查询-->
    <select id="方法名" resultType="返回值的对象路径">
        select * from demo_user
            <where>
                <choose>
                    <when test="name != null "> name=#{name}</when>
                    <when test="age != null "> age=#{age}</when>
                    <otherwise> sex=#{sex}</otherwise>
                </choose>
            </where>
    </select>





    <!--13.resultMap使用  对象的属性名称与表中的字段不一样,查询时需要使用resultMap-->
    <select id="方法名" resultMap="和下面id名字相同">
        select * from dog
    </select>

    <resultMap id="自定义名字,需要和resultMap内容相同" type="返回值的对象路径">
        <!--主键标识-->
        <id column="dog_id" property="dogId"/>
        <!--映射其他文件-->
        <result column="dog_name" property="dogName"/>
        <result column="dog_age" property="dogAge"/>
    </resultMap>




    <!--14. -->


</mapper>

上一篇:gcc查看从C源代码到exe文件的中间文件内容


下一篇:CSharp: iTextSharp 5.13.2 create pdf