精华内容
下载资源
问答
  • mybatis的xmllike拼接百分号

    千次阅读 2020-06-02 14:03:08
    在使用mybatis开发时,有时需要使用like 查询操作数据库,mysql和sqlserver2012之后的数据库可以使用concat来实现拼接,sqlserver2012之前不可以使用,可以在service层对字符串拼接% str like concat(’%’,#{str},...

    在使用mybatis开发时,有时需要使用like 查询操作数据库,mysql和sqlserver2012之后的数据库可以使用concat来实现拼接,sqlserver2012之前不可以使用,可以在service层对字符串拼接%

    str like concat(’%’,#{str},’%’)

    展开全文
  • SELECT * FROM order_info WHERE predetermine_date LIKE '03%2019' 比如这个,我要查询以03开头以2019结尾的数据,这个03和2019怎么占位
  • mybatis中模糊查询like拼接问题

    万次阅读 2018-05-08 12:39:38
    方法一: 直接使用 % 拼接字符串 注意:此处不能写成 "%#{name}%" ,#{name}就成了字符串的一部分, 会发生这样一个异常: The error occurred while setting parameters, 应该写成: "%"#{name}"%",即#{name}是一个...
    <!-- ******************** 模糊查询的常用的3种方式:********************* -->
        <select id="getUsersByFuzzyQuery" parameterType="User" resultType="User">
            select <include refid="columns"/> from users
            <where>
                <!--
                    方法一: 直接使用 % 拼接字符串 
                    注意:此处不能写成  "%#{name}%" ,#{name}就成了字符串的一部分,
                    会发生这样一个异常: The error occurred while setting parameters,
                    应该写成: "%"#{name}"%",即#{name}是一个整体,前后加上%
                -->
                <if test="name != null">
                    name like "%"#{name}"%"
                </if>
                <!--方法二: 使用concat(str1,str2)函数将两个参数连接 -->
                <if test="phone != null">
                    and phone like concat(concat("%",#{phone}),"%")
                </if>
                <!--方法三: 使用 bind 标签,对字符串进行绑定,然后对绑定后的字符串使用 like 关键字进行模糊查询 -->
                <if test="email != null">
                    <bind name="pattern" value="'%'+email+'%'"/>
                    and email like #{pattern}
                </if>
            </where>
        </select>

    4. 表达式:name like '%'||#{name}||'%'

    这个不能满足要求,直接把数据库中的所有数据查询出来了,不符合我的要求,mysql||代表是or的意思

    ==>  Preparing: select count(0) from (select *from bbs_brand WHERE name like'%'||?||'%' and falg=?) as total

    ==>Parameters: (String), 1(Integer)


    亲测mysql数据库 使用Concat函数没有问题,另外两种方法均出现查所有问题。

    展开全文
  • oracle like 条件拼接

    2021-06-08 07:22:24
    (1) ibatis xml配置:下面的写法只是简单的转义 namelike '%$name$%' (2) 这时会导致sql注入问题,比如参数name传进一个单引号“'”,生成的sql语句会是:name like '%'%' (3) 解决方法是利用字符串连接的方式来构成...

    (1) ibatis xml配置:下面的写法只是简单的转义 namelike '%$name$%'

    (2) 这时会导致sql注入问题,比如参数name传进一个单引号“'”,生成的sql语句会是:name like '%'%'

    (3) 解决方法是利用字符串连接的方式来构成sql语句 name like '%'||'#name#'||'%'

    (4) 这样参数都会经过预编译,就不会发生sql注入问题了。

    (5) #与$区别:

    #xxx# 代表xxx是属性值,map里面的key或者是你的pojo对象里面的属性,ibatis会自动在它的外面加上引号,表现在sql语句是这样的 where xxx = 'xxx' ;

    $xxx$ 则是把xxx作为字符串拼接到你的sql语句中, 比如 order by topicId , 语句这样写 ... order by #xxx#,ibatis 就会把他翻译成 order by 'topicId' (这样就会报错) 语句这样写 ... order by $xxx$ibatis 就会把他翻译成 order by topicId

     
    SELECT *   FROM user  WHERE username like '%$username$%'  的安全写法
    Sql代码 
    SELECT *         FROM user        WHERE username like '%'  || #username# || '%'  
    SELECT * FROM user WHERE username like '%' || #username# || '%'

    ==============================

    select d.DRUG_ID,d.DRUG_NAME,d.EXTRACT,dd.SUMMARY from DRUG_BASE_INFO d
    left join drug_dev_profile dd on d.drug_id=dd.drug_id
    where dd.summary like '%'||d.EXTRACT||'%'

    展开全文
  • ***.xml拼接sql使用记录

    2019-10-25 15:01:58
    xml中配置sql: 增 <insert id = "insert"> INSERT INTO xf_message( id, question ) VALUES ( #{id}, #{question} ) </insert> 删 <update id="delete"> DELETE FROM xf_message ...

    xml中配置sql:

    <insert id = "insert">
    INSERT INTO xf_message(
    		id,
    		question
    		) VALUES (
    		#{id},
    		#{question}
    		)
    </insert>
    

    <update id="delete">
    		DELETE FROM xf_message
    		WHERE id = #{id}
    	</update>
    

    <update id="update">
    		UPDATE xf_message
    		<set>
    			<if test="question!= null and question!=''">
    				question = #{question},
    			</if>
    			<if test="dyfield5 != null and dyfield5 !=''">
    				dyfield5 = #{dyfield5}
    			</if>
    		</set>
    		WHERE id = #{id}
    	</update>
    
    <if test="question!= null and question!=''">
    				question = #{question},
    </if>
    

    这是判断所需要的数据是否存在的当然最好再加一个undefined,当数据为false时这些数据的时候包裹的字符串就不会被拼装到sql中

    <sql id="xfMessageColumns">
    		a.id AS "id",
    		a.question AS "question",
    		a.answer AS "answer",
    	</sql>
    
    <sql id="xfMessageJoins">
    	</sql>
    
    <select id="get" resultType="XfMessage">
    		SELECT
    		<include refid="xfMessageColumns" />
    		FROM xf_message a
    		<include refid="xfMessageJoins" />
    		WHERE a.id = #{id}
    	</select>
    
    	<select id="findList" resultType="XfMessage">
    		SELECT
    		a.id AS "id",
    		a.question AS "question",
    	    u.name as "username",
    	    u1.name as "answerusername"
    		FROM xf_message a
    		left join xf_user u on u.id = a.questionerid
    		left join xf_user u1 on u1.id = a.answererid
    		<where>
    			<if test="question != null and question != ''">
    				AND a.question LIKE
    				<if test="dbName == 'oracle'">'%'||#{question}||'%'</if>
    				<if test="dbName == 'mssql'">'%'+#{question}+'%'</if>
    				<if test="dbName == 'mysql'">concat('%',#{question},'%')</if>
    			</if>
    		</where>
    		<choose>
    			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
    				ORDER BY ${page.orderBy}
    			</when>
    			<otherwise>
    				limit #{startIndex},#{pageSize}
    			</otherwise>
    		</choose>
    	</select>
    
    <select id="findList2Count" resultType="Integer">
    	SELECT
    	count(1)
    	FROM xf_message a
    	left join xf_user u on u.id = a.questionerid
    	left join xf_user u1 on u1.id = a.answererid
    	<where>
    		<if test="question != null and question != ''">
    			AND a.question LIKE
    			<if test="dbName == 'oracle'">'%'||#{question}||'%'</if>
    			<if test="dbName == 'mssql'">'%'+#{question}+'%'</if>
    			<if test="dbName == 'mysql'">concat('%',#{question},'%')</if>
    		</if>
    		<if test="answer != null and answer != ''">
    			AND a.answer LIKE
    			<if test="dbName == 'oracle'">'%'||#{answer}||'%'</if>
    			<if test="dbName == 'mssql'">'%'+#{answer}+'%'</if>
    			<if test="dbName == 'mysql'">concat('%',#{answer},'%')</if>
    		</if>
    	</where>
    </select>
    
    
    	<select id="findAllList" resultType="XfMessage">
    		SELECT
    		<include refid="xfMessageColumns" />
    		FROM xf_message a
    		<include refid="xfMessageJoins" />
    		<where>	</where>
    		<choose>
    			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
    				ORDER BY ${page.orderBy}
    			</when>
    			<otherwise>
    			</otherwise>
    		</choose>
    	</select>
    
    展开全文
  • and name like '%${name}%' </if> <if test="title!=null and title!=''"> and title like '%${title}%' </if> <if test="articleId!=null"> and article_id = #{articleId} </...
  • 模糊查询insure_company,左起0104开头,右边模糊匹配。(like 搭配%表示模糊匹配,concat拼接),claim_date同。 放入mapper.xml文件中时,只需用#{ 参数名 } 代替sql查询中的具体数据即可。
  • <select id="queryBookByName" resultType="Books"> select * from ssmbuild.books where bookName like concat('%',#{bookName},'%') </select>
  • Mybatis的xml查询sql拼接

    2021-02-18 14:10:15
    字符串模糊查询 <if test="userName !... AND `user_name` LIKE CONCAT(CONCAT('%', #{userName}), '%') </if> 日期时间范围查询 <if test="dto.metaCreatedStart != null"> AND `meta_cre..
  • 首先你要了解xml 能用那些标签元素 一般在头部信息中声明 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> ...<!ELEMENT insert (#PCDATA | ...
  • mybatis xml常用写法-使用like关键字

    千次阅读 2020-10-19 20:10:46
    需求:xml中需要在where中拼接like语句 方法1:concat <where> <trim suffixOverrides="," > <if test="id != null and id != ''" > and id = #{id} </if> <if test="name != null ...
  • 1.直接传参法 直接传参法,就是将要查询的关键字keyword,在代码中拼接好要查询的格式,如%keyword%,然后直接作为参数传入mapper.xml的映射文件中。 2.CONCAT()函数 MySQL的 CONCAT()函数用于将多个字符串连接成...
  • XML拼接SQL标签 参数取值 预编译与直接赋值 编码规范 select where include sql set trim替代where set if标签 && " " choose when 类属性参数值 基本数据类型参数值 like模糊 foreach...
  • mybatis中接口方法对应的xml文件中的方法中,需要使用模糊搜索, 查询以参数开头的记录。 错误的sql拼接: <if test="locationVO != null and locationVO.selected != null"> and location.goods_...
  • Sql Server参数化查询之where in和like实现之xml和DataTable传参 在上一篇Sql Server参数化查询之where in和like实现详解中介绍了在Sql Server使用参数化查询where in的几种实现方案,遗漏了xml和表值...
  • select count(*) from `movie` where gids like concat('%',1,'%'); 上面指令用于查询movie表中gids字段带有1的行数 在Mybatis中如何拼接这种模糊查询字符串呢? 首先看下mapper接口中定义的方法: /** * ...
  • 如果在xml中写code like ${dto.code},会被解析code like xxx,如果不是数字,肯定是会直接报错的,没有加单引号。 如果使用code like '${dto.code}',解析为code like 'xxx',错是不会报了,但是查询结果和code = ...
  • Mybatis 模糊查询字符拼接like '%%')

    千次阅读 2018-06-20 14:41:48
    在执行模糊查询的时候,需要对传入字段进行 拼接。推荐的方法是 SELECT * FROM TNotific &lt;where&gt; &lt;if test="method != null"&gt; and Method like CONCAT('%', #{method ,...
  • (1) ibatis xml配置:下面的写法只是简单的转义 namelike '%$name$%' (2) 这时会导致sql注入问题,比如参数name传进一个单引号“'”,生成的sql语句会是:name like '%'%' (3) 解决方法是利用字符串...
  • (1) ibatis xml配置:下面的写法只是简单的转义 namelike '%$name$%' (2) 这时会导致sql注入问题,比如参数name传进一个单引号“'”,生成的sql语句会是:name like '%'%' (3) 解决方法是利用字符串连接的...
  • (1) ibatis xml配置:下面的写法只是简单的转义 namelike '%$name$%' (2) 这时会导致sql注入问题,比如参数name传进一个单引号“'”,生成的sql语句会是:name like '%'%' (3) 解决方法是利用字符串连接的...
  • xml文件中编写以下代码 这里使用占位#{param1}进行占位 ,在sqlsession内对占位符进行赋值: 全部代码: <!--根据模糊查询1--> <select id="select04" resultType="ban"> select * from ban where ...
  • 传一个参数:如String类型: parameterType=“java.lang.String” 传多个参数时: 不添加parameterType说明传参类型时: (1),用顺序对应,0,1形式,未成功 dao层.java文件 ...模糊查询like问题 未成功: L...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 16,140
精华内容 6,456
关键字:

like拼接xml