问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

怎么让SQL动态存储过程进行模糊查询

发布网友 发布时间:2022-04-08 10:03

我来回答

2个回答

懂视网 时间:2022-04-08 14:24

(
  • id int primary key auto_increment,
  • name varchar(10),
  • age int(3)
  • );
  • insert into d_user(name,age) values(‘Tom‘,12);
  • insert into d_user(name,age) values(‘Bob‘,13);
  • insert into d_user(name,age) values(‘Jack‘,18);
  • 3 ConditionUser(查询条件实例类)

    1. private String name;
    2. private int minAge;
    3. private int maxAge;

    4 userMapper.xml(映射文件)

    1. <mapper namespace="cn.imentors.mybatis.test7.userMapper">
    2. <!--
    3. 实现多条件查询用户(姓名模糊匹配, 年龄在指定的最小值到最大值之间)
    4. -->
    5. <select id="getUser" parameterType="ConditionUser" resultType="User">
    6. select * from d_user where
    7. <if test=‘name != "%null%"‘>
    8. name like #{name} and
    9. </if>
    10. age between #{minAge} and #{maxAge}
    11. </select>
    12. </mapper>

    5 测试

    1. @Test
    2. public void test(){
    3. SqlSessionFactory factory = MybatisUtils.getFactory();
    4. SqlSession session = factory.openSession();
    5. String statement = "cn.imentors.mybatis.test7.userMapper.getUser";
    6. String name = "o";
    7. name = null;
    8. ConditionUser parameter = new ConditionUser("%"+name+"%", 13, 18);
    9. List<User> list = session.selectList(statement, parameter);
    10. System.out.println(list);
    11. session.close();

    6 MyBatis中可用的动态SQL标签

    6.1 if

    6.2 choose

    1. <select id=”findActiveBlogLike”parameterType=”Blog” resultType=”Blog”>
    2. SELECT * FROM BLOG WHERE state = ?ACTIVE?
    3. <choose>
    4. <when test=”title != null”>
    5. AND title like #{title}
    6. </when>
    7. <when test=”author != null and author.name != null”>
    8. AND title like #{author.name}
    9. </when>
    10. <otherwise>
    11. AND featured = 1
    12. </otherwise>
    13. </choose>
    14. </select>

    6.3 where

    1. <select id=”findActiveBlogLike” parameterType=”Blog” resultType=”Blog”>
    2. SELECT * FROM BLOG
    3. <where>
    4. <if test=”state != null”>
    5. state = #{state}
    6. </if>
    7. <if test=”title != null”>
    8. AND title like #{title}
    9. </if>
    10. <if test=”author != null and author.name != null”>
    11. AND title like #{author.name}
    12. </if>
    13. </where>
    14. </select>

    6.4 set

    1. <update id="updateAuthorIfNecessary"
    2. parameterType="domain.blog.Author">
    3. update Author
    4. <set>
    5. <if test="username != null">username=#{username},</if>
    6. <if test="password != null">password=#{password},</if>
    7. <if test="email != null">email=#{email},</if>
    8. <if test="bio != null">bio=#{bio}</if>
    9. </set>
    10. where id=#{id}
    11. </update>

    6.5 foreach

    1. <select id="selectPostIn" resultType="domain.blog.Post">
    2. SELECT *
    3. FROM POST P
    4. WHERE ID in
    5. <foreach item="item" index="index" collection="list" open="(" separator="," close=")">
    6. #{item}
    7. </foreach>
    8. </select>
    注:你可以传递一个List实例或者数组作为参数对象传给MyBatis。当你这么做的时候,MyBatis会自动将它包装在一个Map中,用名称作为键。List实例将会以“list”作为键,而数组实例将会以“array”作为键

    捐赠我们
        良师益友工作室一直在致力于帮助编程爱好更加快速方便地学习编程,如果您对我们的成果表示认同并且觉得对你有所帮助,欢迎您对我们捐赠^_^。    技术分享

    07_动态SQL与模糊查询

    标签:

    热心网友 时间:2022-04-08 11:32

    exec('select top '+@PageSize+' * from Books where Title like ‘’'+@Title+'‘’and Id not in (select top '+@Page+' Id from Books where Title like‘’'+@Title+'‘’ order by '+@Order+') order by '+@Order)
    两个 like 附近需要用单引号括起来。
    声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
    二建证书有纸质版吗 二建合格证书还有纸质版吗 配水间数字化不上线是什么原因 微信什么网名好听 北京男科医院有哪些比较好 如图所示,水平地面上停放着一辆实验小车,车与路面间的动摩擦因数为μ... 如图所示,水平光滑地面上停放着一辆质量为M的小车,其左侧半径为R的四分... 怎样申请邮政信用卡? 如何申请邮政信用卡 ...一半已经掉下了,还有一半在牙床上,掉下来牙龈有危缩,可牙也不痛... 想要一张 美人指香蕉 的图片 或者文字介绍 就是那种像指头一样细长的香蕉 小时候吃过,现在找不到了 卡通图片,是个卡通男吃香蕉的图片谁有啊? 以前在深圳时吃过一种香蕉,胖胖的,有点像芒果,吃起来也既有香蕉味也有... 急求~~~什么是法定毒物鉴定 法医毒物鉴定人需要什么资格 毒物的分类方法 法医鉴定是如何进行毒物鉴定的? 污染环境罪中有害物质的鉴定标准是什么 法医毒物鉴定 是什么。它包含什么别类的鉴定 swisse葡萄籽的生产日期用手一擦就掉,是假货吗?唯品会买的 Swisse的产品怎么仿真伪? 朋友送我一支这个澳洲的Swisse的玫瑰精油,但我不知道生产日期! 中国企业到国外投资对自己的政府有啥好处 中国企业海外投资应当注意什么 中国企业赴境外投资的境内审批程序?! 境外投资备案需要什么材料 有谁用过魅声T800声卡的朋友,给说说这个声卡怎么样,效果如何,我想买,都是有点忧郁,谢谢大家给点 魅声T800声卡怎么样? 魅声T800声卡怎么样,用过一段时间的来解答一下。 魅声t800录音很难听 期货怎么发现主力 期货主力是盯着散户做的吗 什么是期货交易中主力合约 水皮什么意思 有那些股市名人对中国股市的总结性意见呢? 为什么中国股市有涨跌停限制 股市出问题了? 猴市的《猴市》 今日通威股份股票最新点评 有没有以三皇五帝时代为背景题材的电视剧或电影 有没有三皇五帝时期的电视剧? 找一部关于三皇五帝的电视剧 求像《远古的传说》这样讲述三皇五帝时期的电视剧或电影 有没有那种演三皇五帝神话的电影或者电视剧 我想看中国的历史剧,介绍各个朝代的 三皇五帝是哪三皇哪五帝啊 《长安十二时辰》唐玄宗被叫“圣人”,古代皇帝的称呼有哪些? 三皇五帝,千秋万代.好像什么歌词来着 界宁保护三界是什么求一个电视剧好像叫莽什么记 小米手机怎么截屏长图