mybatis框架入门程序:演示通过mybatis实现数据库的模糊查询操作

1. mybatis的基本准备操作见我的上一篇博文:https://www.cnblogs.com/wyhluckdog/p/10149480.html

2. 根据用户名查询用户信息:

(1)映射文件:

  在User.xml中添加:

<!-- 模糊查询
        返回结果可能为集合;如果返回结果为集合,调用selectList(),并且返回类型配置集合中的泛型。集合中存放的就是User,所以返回类型就是User类型
        ${}拼接符:字符串原样拼接。如果传入的基本类型{String,long,double,int boolean等},那么
        ${}中的变量名必须是value.
    -->
    <select id="findUserByUsername" parameterType="java.lang.String" resultType="com.huida.po.User">
        <!-- 模糊查询的占位符需要进行拼接 -->
        select * from user where username like "%${value}%"
    </select>

  parameterType:定义输入到sql中的映射类型。

  返回结果可能为集合;如果返回结果为集合,在测试文件中调用selectList(),并且返回类型配置集合中的泛型。集合中存放的就是User,所以返回类型就是User类型。

  ${}拼接符:字符串原样拼接。如果传入的基本类型{String,long,double,int boolean等},那么${}中的变量名必须是value。

(2)测试程序:

    @Test
    public void testFindUserByUsername() throws Exception{
        //通过流将核心配置文件读取进来
        InputStream inputStream=Resources.getResourceAsStream("config/SqlMapConfig.xml");
        //通过核心配置文件输入流来创建工厂
        SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(inputStream);
        //通过工厂创建session
        SqlSession openSession=factory.openSession();
        //查询语句,返回值为User对象
        List<User> list=(List) openSession.selectList("test.findUserByUsername","li");
        System.out.println(list);
        //关闭资源
        openSession.close();
        //factory没有close(),因为session关闭之后,factory也就关闭了。
    }

3.单元测试:

  当我们查询的条件是“li”的时候,会输出名字中带li的所有记录,当我们的查询条件是“lisi”的时候,查询结果只有username为“lisi”的这一条记录。所以通过模糊查询可以实现查询一条或多条记录。

猜你喜欢

转载自www.cnblogs.com/wyhluckdog/p/10149844.html