zoukankan      html  css  js  c++  java
  • mybatis 模糊查询 like的三种方式

    第一种

    public void selectBykeyWord(String keyword) {
      String id = "%" + keyword + "%";
      String roleType = "%" + keyword + "%";
      String roleName = "%" + keyword + "%";
      userDao.selectBykeyWord(id,roleName,roleType);
    }
    在Dao层指定各个参数的别名

    List<RoleEntity> selectBykeyWord(@Param("id") String id,@Param("roleName") String roleName,@Param("roleType") String roleType);

    mapper.xml中

    <select id="selectBykeyWord" parameterType="string" resultType="com.why.mybatis.entity.RoleEntity">
      SELECT
        *
      FROM
        t_role
      WHERE
        role_name LIKE #{roleName}
        OR id LIKE #{id}
        OR role_type LIKE #{roleType}
    </select>


    执行出来的SQL语句:

    SELECT * FROM t_role WHERE role_name LIKE '%why%' OR id LIKE '%why%' OR role_type LIKE '%why%';

    第二种

    CONCAT()函数

    MySQL的 CONCAT()函数用于将多个字符串连接成一个字符串,是最重要的mysql函数之一

    CONCAT(str1,str2,...)

    List<RoleEntity> selectBykeyWord(@Param("keyword") String keyword);

    <select id="selectBykeyWord" parameterType="string" resultType="com.why.mybatis.entity.RoleEntity">
      SELECT
        *
      FROM
        t_role
      WHERE
        role_name LIKE CONCAT('%',#{keyword},'%')
      OR
        id LIKE CONCAT('%',#{keyword},'%')
      OR
        role_type LIKE CONCAT('%',#{keyword},'%')
    </select>

    第三种

    Mybatis的bind

    <!-- 按条件查询用户 -->
    <select id="searchData" resultMap="BaseResultMap">
      <bind name="pattern" value="searchData + '%'" />
      select
        <include refid="Base_Column_List" />
      from user
        where (name like #{pattern,jdbcType=VARCHAR} or login_name like #{pattern,jdbcType=VARCHAR}) and login_name != #{loginName,jdbcType=VARCHAR}
    </select>

  • 相关阅读:
    Python常用第三方库总结
    Python爬虫技术--入门篇--爬虫介绍
    X sql解惑 25 里程碑问题 答案
    X sql解惑 34 咨询顾问收入问题
    从小变大的照片
    获取属性的顺序
    for...in
    判断元素是否存在
    自由的元素名称
    ES6语法糖-简洁属性表示
  • 原文地址:https://www.cnblogs.com/Samuel-Leung/p/10695301.html
Copyright © 2011-2022 走看看