您当前的位置: 首页 >  mybatis

杨林伟

暂无认证

  • 2浏览

    0关注

    3337博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

17MyBatis - MyBatis模糊查询

杨林伟 发布时间:2019-04-03 11:49:15 ,浏览量:2

MyBatis实现根据用户名模糊查询用户

查询sql: SELECT * FROM user WHERE username LIKE '%王%'

方法一

映射文件: 在User.xml配置文件中添加如下内容:

	
	
	
		SELECT * FROM `user` WHERE username LIKE #{username}
	

测试程序: MybatisTest中添加测试方法如下:

  @Test
    public void testQueryUserByUsername1() throws Exception {
        // 4. 创建SqlSession对象
        SqlSession sqlSession = sqlSessionFactory.openSession();

        // 5. 执行SqlSession对象执行查询,获取结果User
        // 查询多条数据使用selectList方法
        List list = sqlSession.selectList("queryUserByUsername1", "%王%");

        // 6. 打印结果
        for (Object user : list) {
            System.out.println(user);
        }

        // 7. 释放资源
        sqlSession.close();
    }

运行结果:在这里插入图片描述

方法二

映射文件:

在User.xml配置文件中添加如下内容:



		SELECT * FROM `user` WHERE username LIKE '%${value}%'

测试程序:

MybatisTest中添加测试方法如下:

 @Test
    public void testQueryUserByUsername2() throws Exception {
        // 4. 创建SqlSession对象
        SqlSession sqlSession = sqlSessionFactory.openSession();

        // 5. 执行SqlSession对象执行查询,获取结果User
        // 查询多条数据使用selectList方法
        List list = sqlSession.selectList("queryUserByUsername2", "王");

        // 6. 打印结果
        for (Object user : list) {
            System.out.println(user);
        }

        // 7. 释放资源
        sqlSession.close();
    }

运行结果: 在这里插入图片描述

小结

1) #{}和${}

  • #{}表示一个占位符号,通过#{}可以实现preparedStatement向占位符中设置值,自动进行java类型和jdbc类型转换。#{}可以有效防止sql注入。

  • #{}可以接收简单类型值或pojo属性值。 如果parameterType传输单个简单类型值

  • #{}括号中可以是value或其它名称。

  • ${}表示拼接sql串,通过 $ { }可以将parameterType 传入的内容拼接在sql中且不进行jdbc类型转换

  • $ { }可以接收简单类型值或pojo属性值,如果parameterType传输单个简单类型值,${}括号中只能是value。

2) parameterType和resultType

  • parameterType:指定输入参数类型,mybatis通过ognl从输入对象中获取参数值拼接在sql中。
  • resultType:指定输出结果类型,mybatis将sql查询结果的一行记录数据映射为resultType指定类型的对象。如果有多条数据,则分别进行映射,并把对象放到容器List中

3) selectOne和selectList

selectOne查询一条记录,如果使用selectOne查询多条记录则抛出异常:

在这里插入图片描述

selectList可以查询一条或多条记录。

关注
打赏
1662376985
查看更多评论
立即登录/注册

微信扫码登录

0.5114s