栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

MyBatis模糊查询

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

MyBatis模糊查询

模糊查询

案例:根据昵称查询会员信息(模糊匹配 like)

dao接口

模糊查询需要使用${} 取值,与sql拼接,

在使用${}时,即使只有一个参数时也需要使用@Param注解声明参数的key(非String对象参数可以不用声明)

package com.ccl.dao;

import com.ccl.pojo.Member;
import com.ccl.pojo.MemberSearchCondition;
import org.apache.ibatis.annotations.Param;

import java.util.HashMap;
import java.util.List;


public interface MemberDao {
    //单条件
    public Member queryMemberByNickName(String nick);
    //多条件

    
    public List searchMember(HashMap params);

    
    //public ListsearchMember(MemberSearchCondition params);

    public List searchMemberCity(List cities);

    public List searchMemberByNick(@Param("keyWord") String keyWord);
}
映射文件配置

如果参数是String类型,需要parameterType声明参数类型


    select 
    from members
    where member_nick like '%${keyWord}%'

测试
@Test
    public void testSearchMemberByNick(){
        MemberDao memberDao = MyBatisUtil.getMapper(MemberDao.class);
        List members = memberDao.searchMemberByNick("花");
        for (Member member : members) {
            System.out.println(member);
        }
    }
${} 和 #{}二者区别

${key}表示获取参数,先获取参数的值拼接到sql语句中,再执行sql语句 可能引起sql注入问题

#{key}表示获取参数,先完成sql预编译,预编译完成之后再将获取的参数设置到sql语句中 ,可以避免sql注入问题

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/336801.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号