Mybatis模糊查询的使用

查询用户表中名字包含“优”字的用户信息

1、Mybatis的配置的准备,可看下方连接

          https://blog.csdn.net/qq_43163943/article/details/110261144

2、在sql映射文件(mapper.xml)文件中编写sql语句

          1)查询方式一:

          User.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!-- 命名空间,用于隔离sql,后面还有一个很重要的作用 -->
<mapper namespace="test">

    <!--    如果返回多条结果,mybaits会把每一个结果封装到配置的pojo中,然后把pojo放入到list集合中-->
    <select id="queryUserByUsername1" parameterType="string" resultType="com.gxa.pojo.User">
        select * from user where username like #{username}
    </select>
  

</mapper>

  
   

sql形态:

          2)查询方式二

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!-- 命名空间,用于隔离sql,后面还有一个很重要的作用 -->
<mapper namespace="test">
    
    <select id="queryUserByUsername2" parameterType="string" resultType="com.gxa.pojo.User">
        select * from user where username like '%${value}%'
    </select>

</mapper>

  
   

sql形态

          3)测试类

package com.gxa.test;

import com.gxa.pojo.User;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Before;
import org.junit.Test;

import java.io.IOException;
import java.io.InputStream;
import java.util.List;

public class TeseDemo {
    private  SqlSessionFactory sqlSessionFactorybuild;

    @Before
    public void before() throws Exception {
        //1、加载主配置文件
        SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();

        //2、加载mybaits的主配置文件
        InputStream resourceAsStream = Resources.getResourceAsStream("SqlMapConfig.xml");

        //3、加载配置文件创建sqlSession的工厂
        sqlSessionFactorybuild = sqlSessionFactoryBuilder.build(resourceAsStream);


    }

    @Test
    public void testQueryUserByUsername(){
        //4、获得sqlSession
        SqlSession  sqlSession = sqlSessionFactorybuild.openSession();

        List<User> objects = sqlSession.selectList("queryUserByUsername1", "%优%");
        System.out.println(objects);
    }

    @Test
    public void testQueryUserByUsername2(){
        //4、获得sqlSession
        SqlSession  sqlSession = sqlSessionFactorybuild.openSession();

        List<User> objects = sqlSession.selectList("queryUserByUsername2", "优");
        System.out.println(objects);
    }
}

3、两种方式的区别,可看下方的连接,若可以理解,则不用看。

https://blog.csdn.net/qq_43163943/article/details/110273417

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值