zoukankan      html  css  js  c++  java
  • mybatis中的模糊查询

    模糊查询被我们片面的理解为只有一种,其实模糊查询查询包括左模糊查询,右模糊查询和整个模糊查询

    左模糊查询:

    /**
    * 左模糊查询
    * @param student
    * @return
    */
    public List<Student> findSomeStudent(Student student);


    <!--左模糊查询-->
    <select id="findSomeStudent" resultType="student">
    SELECT *from Student WHERE name LIKE '' #{name } '%' AND age>#{age}
    </select>


    /**
    * 左模糊查询
    */
    @Test
    public void find() throws Exception{
    String resource = "mybatis-config.xml";
    InputStream inputStream = Resources.getResourceAsStream(resource);
    SqlSessionFactory sf = new SqlSessionFactoryBuilder().build(inputStream);
    SqlSession session = sf.openSession();
    IStudentDAO mapper = session.getMapper(IStudentDAO.class);
    Student student=new Student();
    student.setName("飞");
    student.setAge(20);
    List<Student> students = mapper.findSomeStudent(student);
    for (Student item :students){
    System.out.println(item.getName());
    }
    //提交事务
    session.commit();
    //关闭会话,释放资源
    session.close();
    }


    右模糊查询
    /**
    * 右模糊查询
    * @param student
    * @return
    */
    public List<Student> findSomeStudent(Student student);


    
    
    <!--右模糊查询-->
    <select id="findSomeStudent" resultType="student">
    SELECT *from Student WHERE name LIKE '%' #{name } '' AND age>#{age}
    </select>


    
    
    /**
    * 右模糊查询
    */
    @Test
    public void find() throws Exception{
    String resource = "mybatis-config.xml";
    InputStream inputStream = Resources.getResourceAsStream(resource);
    SqlSessionFactory sf = new SqlSessionFactoryBuilder().build(inputStream);
    SqlSession session = sf.openSession();
    IStudentDAO mapper = session.getMapper(IStudentDAO.class);
    Student student=new Student();
    student.setName("张");
    student.setAge(20);
    List<Student> students = mapper.findSomeStudent(student);
    for (Student item :students){
    System.out.println(item.getName());
    }
    //提交事务
    session.commit();
    //关闭会话,释放资源
    session.close();
    }


    整个模糊查询

    /**
    * 整个模糊查询
    * @param student
    * @return
    */
    public List<Student> findSomeStudent(Student student);


    
    
    <!--整个模糊查询-->
    <select id="findSomeStudent" resultType="student">
    SELECT *from Student WHERE name LIKE '%' #{name } '%' AND age>#{age}
    </select>


    
    
    /**
    * 整个模糊查询
    */
    @Test
    public void find() throws Exception{
    String resource = "mybatis-config.xml";
    InputStream inputStream = Resources.getResourceAsStream(resource);
    SqlSessionFactory sf = new SqlSessionFactoryBuilder().build(inputStream);
    SqlSession session = sf.openSession();
    IStudentDAO mapper = session.getMapper(IStudentDAO.class);
    Student student=new Student();
    student.setName("张");
    student.setAge(20);
    List<Student> students = mapper.findSomeStudent(student);
    for (Student item :students){
    System.out.println(item.getName());
    }
    //提交事务
    session.commit();
    //关闭会话,释放资源
    session.close();
    }


    模糊查询的sql语句三种形式
    前二种不会引起sql注入,第三种会引起sql注入
    SELECT  *from Student WHERE  name LIKE  concat('%',#{name },'%' AND age>#{age})
    SELECT  *from Student WHERE  name LIKE '%' #{name } '%' AND age>#{age}

    SELECT *from Student WHERE name LIKE '%${name}%' AND age>#{age}
     
     



     
     
  • 相关阅读:
    libxml2 解析文档的例子
    FreeRTOS之任务优先级的分配
    idea中快速重写父类方法
    组件里面调用组建的方法
    sproot 注解学习记录 (含给实现类起名字的方法)
    直播技术没有那么神秘,你也可以DIY
    Java服务端API接口统一加密和解密
    把对象交给spring管理的3种方法及经典应用
    Dart空安全的底层原理与适配
    Dart 中 final和const 区别
  • 原文地址:https://www.cnblogs.com/sujulin/p/7588888.html
Copyright © 2011-2022 走看看