一、Ibatis常用动态sql语法,简单粗暴用一例子

<select id="iBatisSelectList" parameterClass="java.util.HashMap" resultMap="BeanFieldMap">
        SELECT
            Column_list
        FROM
            Table_name
        WHERE 1=1
            <isNotEmpty prepend="and" property="areacode">
                areaCodes like concat('%', #areacode#, '%')
            </isNotEmpty>
            <isNotEmpty property="types" prepend="and">
                <iterate property="types" open="(" conjunction="or" close=")">
                    type like concat('%',#types[]#,'%')
                </iterate>
            </isNotEmpty>
        <isNotEmpty property="datestart" prepend="and">
            inputDate <![CDATA[>]]> #datestart#
        </isNotEmpty>
        <isNotEmpty property="dateend" prepend="and">
            inputDate <![CDATA[<]]> #dateend#
        </isNotEmpty>
        <isEqual property="order" compareValue="asc">
             order by inputDate asc limit #skipCount#,#pageSize#
        </isEqual>
        <isEqual property="order" compareValue="desc">
             order by inputDate desc limit #skipCount#,#pageSize#
        </isEqual>
</select>

其中java中对应的

public List<T> selectLis(String areacode,String type,String datestart,String dateend,Integer skipCount,String order,Integer pageSize){
         Map<String, Object> params = new HashMap<String, Object>();
            params.put("areacode", areacode);
            if(type.indexOf(",")>=0){    //type字符串多个以,隔开
                String[] types = type.split(",");
                params.put("types", types);
            }else{
                String[] types = {type};
                params.put("types", types);
            }
            params.put("skipCount", skipCount.toString());
            params.put("pageSize", pageSize.toString());
        params.put("datestart", datestart);
            params.put("dateend", dateend);
        params.put("order", order);
            logger.info("输入参数:{}", params);
            try {
                return  sqlMapClient.queryForList("iBatisSelectList", params);
            } catch (SQLException e) {
                logger.info("参数{},异常{}", params, e.getStackTrace());
            }
     }

  这个例子涉及到like语句(areacode)用法,集合语句(type)用法,特殊字符用法等,注意格式!!!

转载于:https://www.cnblogs.com/zhangyu1203/p/6233068.html

值得注意的ibatis动态sql语法格式相关推荐

  1. ibatis动态sql配置启动时提示:The content of elements must consist of well-formed character data......

    ibatis动态sql配置启动时提示:The content of elements must consist of well-formed character data... 2012-07-18 ...

  2. oracle sql循环判断语句怎么写,Oracle 非常详细的 PL/SQL入门教程,PL/SQL语法格式/循环语句/条件判断/异常处理...

    PL/SQL入门教程目录 Oracle PL/SQL入门教程,PL/SQL语法格式/循环语句/条件判断/异常处理 一.PL/SQL简介 1.PL/SQL简介 1.PL/SQl是过程语言PL与结构化语言 ...

  3. iBatis 动态SQL别名查询结果为Null问题

    iBatis 动态SQL别名查询结果为Null问题 在项目中使用了iBatis,使用xml方便的维护SQL,清晰明了,偶然发现动态拼接的SQL语句在数据中执行很好的返回结果,而到了程序中总是有字段返回 ...

  4. 转:ibatis动态sql

     直接使用JDBC一个非常普遍的问题就是动态SQL.使用参数值.参数本身和数据列都是动态SQL,通常是非常困难的.典型的解决办法就是用上一堆的IF-ELSE条件语句和一连串的字符串连接.对于这个问 ...

  5. MyBatis动态SQL语法详解(二)

    文章目录 一.MyBatis查询返回 1.1.MyBatis查询返回对象 1.2.MyBatis查询返回list集合 1.3.MyBatis查询返回Map 1.4.MyBatis查询自定义结果映射规则 ...

  6. ibatis动态语句中的prepend

    关于ibatis动态sql的prepend的属性,我们需要理解一下几点 select * from student <dynamic prepend="where"> ...

  7. oracle之动态sql

    1.PLSQL内部能够正常运行DML(insert.update.delete)DQL(select)语句,如果运行DDL(create.truncate.drop等)需要动态sql执行. 2.动态s ...

  8. 学习SQL应知道的动态SQL语句基本语法

    学习SQL应知道的动态SQL语句基本语法 1 .普通SQL语句可以用Exec执行 9Kp=A   ' CdaFr1   eg: Select * from tableName Wsc+A:<&q ...

  9. Sql Server实用操作-动态sql语句基本语法

    如何将exec执行结果放入变量中? declare @num int, @sqls nvarchar(4000) set @sqls='select @a=count(*) from tableNam ...

最新文章

  1. PIM-SM DR指定路由器以及 PIM-DM指定前转器的区别 【转自网络】
  2. 苹果雪豹操作系统正式版_Android 11 正式版发布!
  3. kafka直连方式消费多个topic
  4. php 数据相加,PHP数组合并之array_merge和数组相加
  5. C#线程系列讲座(5):同步技术之Monitor
  6. Linux常用命令及配置--简单
  7. cef linux 多线程模式,CEF3开发者系列之进程和线程
  8. visual studio粘贴html代码.会自行添加一些未知代码(自动格式化)
  9. Struts2 标签
  10. 自定义View在android2.3.3手机上正常运行 在android4.2.2手机上报空指针
  11. 精品软件试用及分享 屏幕录像专家注册版 附下载地址
  12. 计算机软件退税,软件企业2021增值税退税
  13. Mac Sublime Text设置中文
  14. unity 彩带粒子_unity游戏缤纷五彩纸屑粒子特效Confetti FX 1.0
  15. 差动变压器的振动测量实验 思考题
  16. python编写游戏测试机器人客户端(一)
  17. android手机怎么删除安装包,手机里的自带软件如何卸载
  18. JAVA学习基础部分
  19. 【数智化案例展】杭州市某区统计局——AIxRPA数字员工技术赋能新经济监测项目...
  20. Linux中的进程管理

热门文章

  1. 用flex布局画骰子的六个面
  2. 小壁虎(EFM32 Zero Gecko)开发板测量功耗
  3. js动态生成html
  4. L3-连续变量分布:均匀分布、指数分布、正态分布
  5. 【ziuno】强化学习入门—超级马里奥
  6. java计算机毕业设计ssm+jsp成都美食推荐系统
  7. android win10 日历提醒,如何将手机日历和win10自带日历的日程同步
  8. 前乒乓球世界冠军邓亚萍作客华奥新浪嘉宾聊天室记录(2)
  9. linux 怎么更新 8021q模块,在ubuntu14.04上实现收发VLAN(802.1Q)帧
  10. 富兰克林的自律十三条