MyBatis 框架动态SQL

本文介绍了MyBatis中用于构建动态SQL的几个关键标签,如if用于条件判断,where处理Sql语句的where部分,choose相当于Java的switch语句,foreach用于遍历集合,set用于动态更新,trim则用于SQL格式化,以及它们的使用方法和属性。
摘要由CSDN通过智能技术生成

常用标签

标签说明
if条件判断,与java中的if语句类似
where为Sql语句动态添加where关键字
choose条件判断,这是一个组合标签,需要when、otherwise标签搭配使用。与java中的swicth语句类似
foreach以遍历方式处理集合型参数
set为Sql语句动态添加set关键字,实现动态数据更新
trim对sql进行格式化处理,添加或移除前后缀

if标签

<if test="条件判断,返回true或false">
    Sql语句    
</if>

where标签

//自动过滤and、or、where关键字,并在没有过滤条件时忽略where关键字
<where>
    <if test="条件判断,返回true或false">
        Sql语句    
    </if>
     ...
</where>

choose标签

//这是一个组合标签,when和otherwise标签写在choose中
//当when标签中test属性判断为true,就会执行它所包含的语句
//choose中的多个when标签只会执行匹配成功的第一个,执行之后跳出choose标签
//当所有的when标签中的test属性判断都会进入falst时,进入otherwise标签
<choose>
    <when test="条件判断,返回true或false">
        Sql语句    
    </when>
    <when test="条件判断,返回true或false">
        Sql语句    
    </when>
    <when test="条件判断,返回true或false">
        Sql语句    
    </when>
    <otherwise>
        Sql语句
    </otherwise>
</choose>

foreach标签

<foreach collection="参数名称" item="元素别名" open="("separator=","close=")">
    #{元素别名}
</foreach>

属性介绍:

item:遍历数组时,为数组后者List集合中的元素的别名

open: 起始位置的拼接符

close:结束位置的拼接符

separator:元素之间的连接符

collection: 参数名称,当参数为数组时默认参数名为Array。list集合时默认为list。map中集合元素的key。注解设置了名称,collection对应值为参数名

set标签

//注:要判断字段是否为空,
<set>
    <if test="条件判断,返回true或false">
        Sql语句    
    </if>    
</set>

trim标签

<trim prefix="前缀" suffix="后缀" prefixOverrides="忽略前缀" suffixOverrides="忽略后缀">
    ...
</trim>

属性介绍:

prefix:前缀,可以自动对trim标签所包含的语句是否有返回值进行判断。如果有返回值,则为SQL语句进行相应的拼接

suffix:后缀,在trim标签包含的语句末尾拼接后缀

prefixOverrides:忽略的前缀,忽略trim标签内部首部指定的内容

suffixOverrides:忽略的后缀,忽略trim标签包含内容尾部指定的内容

MyBatis配置文件

配置文件

<configuration>(配置  根标签)
        <!--引用外部文件-->
    <properties resource="resource/database.properties"/>
    <!--日志-->
    <settings>
        <setting name="logImpl" value="LOG4J"/>
    </settings>
    <!--别名-->
    <typeAliases>
        <typeAlias alias="SysUser" type="cn.bdqn.entity.SysUser"/>
        <typeAlias alias="StorageRecord" type="cn.bdqn.entity.StorageRecord"/>
        <typeAlias alias="Supplier" type="cn.bdqn.entity.Supplier"/>
    </typeAliases>
    <!--环境的配置-->
    <environments default="development">
        <!--开发的环境配置-->
        <environment id="development">
            <transactionManager type="JDBC"></transactionManager>
            <dataSource type="POOLED">
                <property name="driver" value="${driver}"/>
                <property name="url" value="${url}"/>
                <property name="username" value="${username}"/>
                <property name="password" value="${password}"/>
            </dataSource>
        </environment>
    </environments>
<!--  映射器  -->
    <mappers>
<!--        <mapper resource="cn/bdqn/Dao/SysUserMapper.xml"/>-->
<!--        <mapper resource="cn/bdqn/Dao/StorageRecordMapper.xml"/>-->
        <package name="cn.bdqn.Dao"/>
    </mappers>
</configuration>

注:要求按照标签顺序进行配置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值