zoukankan      html  css  js  c++  java
  • Mybatis之动态SQL&OGNL表达式

    1.接口

    public interface MemberMapperDynamicSQL {
    
        public List<Members> selectMembersByIf(Members member);
    
    }

    2.配置文件

    <mapper namespace="com.dao.MemberMapperDynamicSQL">
    
        <!-- 
            OGNL表达式
            &的转义字符为 &amp;
            '的转义字符为 &quot;
         -->
        <select id="selectMembersByIf" resultType="members">
        
            select * from members where 1 = 1
            
            <if test="id != null &amp;&amp; id != &quot;&quot;">
                and id = #{id}
            </if>
            
            <if test="member_name != null &amp;&amp; member_name != &quot;&quot;">
                and member_name like #{member_name}
            </if>
            
        </select>
    
    </mapper>

    3.测试

        public static void main(String[] args) throws IOException {
            SqlSession session = getSqlSession();
            try {
                // 面向接口方式
                MemberMapperDynamicSQL mapper = session.getMapper(MemberMapperDynamicSQL.class);
                Members member = new Members();
    //            member.setId(1);
    //            member.setMember_name("%云%");
                List<Members> list = mapper.selectMembersByIf(member);
                System.out.println(list);
                session.commit();
            } finally {
                // 关闭session
                session.close();
            }
        }

    4.在全局配置文件中加入log打印日志

        <settings>  
            <setting name="logImpl" value="STDOUT_LOGGING"/>  
        </settings>

    5.打印结果

    ==>  Preparing: select * from members where 1 = 1 
    ==> Parameters: 
    <==    Columns: id, member_name, pass_word, age
    <==        Row: 1, 张三, 123456, 25
    <==        Row: 2, 李四, 123456, 25
    <==        Row: 3, 关云长, 123456, 54
    <==        Row: 4, 关云长, 123456, 54
    <==      Total: 4
    [Member [id=1, member_name=张三, password=123456, age=25], Member [id=2, member_name=李四, password=123456, age=25], Member [id=3, member_name=关云长, password=123456, age=54], Member [id=4, member_name=关云长, password=123456, age=54]]

    条件成立则拼接相应的条件,不成立则不拼接

  • 相关阅读:
    HU 参考错误修正:/SCWM/RCORR_HUREF
    EWM 强大的数据修复功能
    EWM ODO清理功能
    发布EWM RF ITS Mobile 相关服务
    git上传本地Intellij idea 项目到码云的git仓库中
    linux 学习一:安装jdk和tomcat
    bootstrap-datepicker应用
    vue2 枚举类型转换
    jqGrid时间转换
    (原创)Rocketmq分布式消息队列的部署与监控
  • 原文地址:https://www.cnblogs.com/zhangjianbing/p/8325745.html
Copyright © 2011-2022 走看看