ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

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

2021-12-17 19:34:28  阅读:112  来源: 互联网

标签:xml name demo age 改查 sex user SQL id


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>

标签:xml,name,demo,age,改查,sex,user,SQL,id
来源: https://blog.csdn.net/m0_61501833/article/details/122003389

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有