zoukankan      html  css  js  c++  java
  • 02_模糊查询

    【工程截图和数据库同01】

    【user.xml】

    根据用户名来查询对应的User

    <select id="findUserByName" parameterType="java.lang.String" resultType="com.Higgin.Mybatis.po.User">
          SELECT *  FROM USER WHERE username LIKE #{value}
    </select> <select id="findUserByName2" parameterType="java.lang.String" resultType="com.Higgin.Mybatis.po.User"> SELECT * FROM USER WHERE username LIKE '%${value}%' </select>

    1.根据用户名称模糊查询用户信息,可能返回多条
    2.resultType :指定就是单条记录所映射的java对象类型
    3.${ }:表示拼接sql字符串,将接受到参数的内容不加任何修饰拼接在sql中。
    4.使用${}拼接字符串,引起sql注入,不建议使用
    5.${value}:接受输入参数的内容,如果传入类型是简单的类型,${}中只能使用value

    【MyBatisTest.java】

    @Test
        public void testFindUserByName() throws IOException{
            //mybatis配置文件
            String resource="SqlMapConfig.xml";
            
            //得到配置文件
            InputStream inputStream=Resources.getResourceAsStream(resource);
            
            //创建会话工厂,传入mybatis的配置文件信息
            SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream);
    
            //通过工厂得到SqlSession
            SqlSession sqlSession=sqlSessionFactory.openSession();
            
            //通过SqlSession操作数据库
            //第一个参数:银蛇文件中statement的id,等于:namespace+"."+statement的id
            //第二个参数:指定换个映射文件中的所撇皮的parameterType类型的参数
            List<User> userList=sqlSession.selectList("test.findUserByName2", "小明");  //不推荐!!!!以引起SQL注入
            for (User user : userList) {
                System.out.println(user.toString());
            }
            
            //释放资源
            sqlSession.close();
        }

    【运行结果如下】

    【MyBatisTest.java】

    @Test
        public void testFindUserByName() throws IOException{
            //mybatis配置文件
            String resource="SqlMapConfig.xml";
            
            //得到配置文件
            InputStream inputStream=Resources.getResourceAsStream(resource);
            
            //创建会话工厂,传入mybatis的配置文件信息
            SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream);
    
            //通过工厂得到SqlSession
            SqlSession sqlSession=sqlSessionFactory.openSession();
            
            //通过SqlSession操作数据库
            //第一个参数:银蛇文件中statement的id,等于:namespace+"."+statement的id
            //第二个参数:指定换个映射文件中的所撇皮的parameterType类型的参数
            List<User> userList=sqlSession.selectList("test.findUserByName", "%小明%");  //推荐
            for (User user : userList) {
                System.out.println(user.toString());
            }
            
            //释放资源
            sqlSession.close();
        }

     【运行结果】

    【注意:selectOne 和 selectList区别】

    selectOne表示查询出一条记录进行映射,如果使用selectOne可以实现,使用selectList也可以是实现。(即List集合中只有一个对象)

    selectList表示查询出一个列表(多条记录)进行映射。如果使用selectList查询多条记录,不能使用selectOne,使用selectOne会报错。

  • 相关阅读:
    .vsdx 在线查看 省的安装 visio 2013了
    桌面整理工具 rolan
    第一节、ES6的开发环境搭建
    $("[lay-id='"+this.id+"']")
    mathAge.call(btn) 函数call 改变函数内 this #js
    viewer && ImageFlow 图片滚动组件 图片点击放大 可以滚轮放大缩小 viewer
    ie11 突然不能加载外部css 很神奇 头部改为 <!DOCTYPE> <html>
    CODE[VS] 1219 骑士游历
    CODE[VS] 1169 传纸条
    CODE[VS] 1010 过河卒
  • 原文地址:https://www.cnblogs.com/HigginCui/p/5699558.html
Copyright © 2011-2022 走看看