首页 > 其他分享 >ibatis-dynamic的用法

ibatis-dynamic的用法

时间:2023-05-10 14:34:02浏览次数:69  
标签:语句 name dynamic sex ibatis sql 如下 用法


去除第一个prepend="and"中的字符(这里为and),从而可以帮助你实现一些很实用的功能。具体情况如下:

1.使用dynamic

1.1 xmlselect * from Person表
     

<dynamic prepend="where"> 
                <isNotNull property="name" prepend="and">
                    name=#name#
                </isNotNull>
                <isNotNull property="sex" prepend="and">
                    sex=#sex#
                </isNotNull>               
        </dynamic>

1.2 结果

       name、sex都非null时打出如下的sql语句:


(and)


and被自动去除了,很方便吧。

2.不使用dynamic

2.1 xml
       如果我把dynamic 去掉就会变的很恶心,如下:
select * from Person表       
                <isNotNull property="name" prepend="and">
                    name=#name#
                </isNotNull>
                <isNotNull property="sex" prepend="and">
                    sex=#sex#
                </isNotNull>          

2.2 结果
      name、sex都非null时打出如下的sql语句:


and name= ? , and sex= ?

      显然name前 多个andsql语句错误
3.总结


     dynamic 会自动去除第一个 prepend="and中的内容(这里为and),从而方便一些操作。

标签:语句,name,dynamic,sex,ibatis,sql,如下,用法
From: https://blog.51cto.com/u_873039/6261362

相关文章

  • xargs命令用法
    参考自阮一峰xargs命令教程xargs命令教程-阮一峰的网络日志(ruanyifeng.com)一、为什么要用xargs呢。unix命令都有参数,有些命令可以接受标准输入(stdin)作为参数[root@xian-01]#cat/etc/passwd|greproot[root@xian-01]#grep--help|grepstandSearchforPATTERN......
  • DYNAMICS-AWARE UNSUPERVISED DISCOVERY OF SKILLS
    发表时间:2020(ICLR2020)文章要点:这篇文章提出了一个无监督的model-based的学习算法Dynamics-AwareDiscoveryofSkills(DADS),可以同时发现可预测的行为以及学习他们的dynamics。然后对于新任务,可以直接用zero-shotplanning的方法选择最优动作。这个文章的点就是学习skill的方式......
  • 第五章学习 循环结构,分支结构,break,continue,return的用法,接收用户数据的fmt.scanl
       packagemainimport"fmt"funcmain(){//实现功能,键盘录入学生age,name,grage,是否为vipvarageintfmt.Println("请录入年龄")//传入age地址的目的:scanln函数中,对地址的值进行改变,实际上是对age值进行改变fmt.Scanln(&age)varname......
  • python 中 re.match 和 re.search用法
     001、re.match>>>re.match("ab","abcdefgab")##在字符串abcdefgab中查找字符串ab,返回索引<re.Matchobject;span=(0,2),match='ab'>>>>re.match("xy","abcdefgab")##如果查找字符串不存在,返回none&g......
  • python中strip和split的用法
    strip()用法str.strip()作用是删除字符串(str)的头和尾的空格,以及位于头尾的\n,\t等。不抓取字符串中间的空格,只抓头尾示例1:str="ABCABCABC\n"print(str)#输出原始字符串str,'\n'会空格一行print(str.strip())#删除头部空格,以及尾部的\nprint(str.ls......
  • 统计类内成员函数调用次数(mutable 的一种用法)
    #include<iostream>classStudent{public:Student(conststd::string&name_,unsignedage_);~Student(){}voidoutput()const{std::cout<<this->name<<""<<this->age<<std::en......
  • Win32 SDK TreeView 控件的基本用法,节点的编辑,拖动,添加,删除,弹出菜单
    TreeView控件老是用的稀里糊涂的,写个测试程序总结一下基本用法要注意的是控件是发通知给父窗口处理,因此消息中鼠标的坐标不是相对控件的,要从屏幕坐标转换来。程序是WIN32SDK向导生成的C语言框架。树的操作定义成一个类。 微软网站上TreeView_XXX宏的说明文档好多错误,应该是......
  • 第6-0讲,StringVar用法
    在tkinter中,StringVar是一种特殊的变量类型,用于存储字符串值,它可以与用户界面中的组件关联,以便在用户界面中显示和更新变量的值。StringVar的常用方法:get():获取StringVar对象的值。set(value):设置StringVar对象的值为value。trace(callback):为StringVar对象添加回调函数,当Str......
  • keras.preprocessing.sequence.pad_sequences()的用法
    1.pad_sequences()的作用keras只能接受长度相等的序列输入。当我们的数据集中出现了长度不等的序列时,可以使用pad_sequence()函数将序列转化为经过填充以后得到的一个长度相同新的序列。2.pad_sequences()语法 1keras.preprocessing.sequence.pad_sequences(2sequenc......
  • Go语言的type func()用法
    golang通过type定义函数类型在Go语言中,type可以定义任何自定义的类型比如熟悉的:typedogstruct{},typemyIntint等等所以func也是可以作为类型自定义的,typemyFuncfunc(int)int,意思是自定义了一个叫myFunc的函数类型,这个函数的签名必须符合输入为int,输出为int。g......