zoukankan      html  css  js  c++  java
  • Mybatis----面试

    1、#{}和${} 区别

      #{}:表示占位符(不可以写成 '#{}'),如果传入的值是一个简单类型(int,String),#{}获得的就是传入的参数值,如果传入的是一个pojo或者hashmap,那么#{}获得的就是这个相应的属性值(例如,传入一个User,#{id},就相当于user.id)

      ${}:字符串拼接(容器引起sql注入,不建议使用),如果传入参数是一个简单类型,就就必须写成 ${value},否做就是获取传入参数的属性值。

      #{name},当传入一个user对象,调用的是user.getName(),所以user对象中需要有getName()方法,即使没有name这个字段。

    2、Mybatis如何分页

    public String vedioAuth(@ModelAttribute("qo") XxxxQueryObject qo, Model model)
    

      qo:封装了分页查询的筛选条件

        作用1:用于表单的回显

        作用2:用户sql查询的where语句判断。

      分页的核心就是写SQL语句 LIMIT 查询

      1、我们可以封装一个查询对象(筛选条件,查询页[用来计算startpage],每页多少条数据等[可以有前端传入,或者使用固定值]),传入mapper中,找到我们需要的数据

      2、我们可以封装一个返回对象(查询页,总页数,data数据),传入前端页面。

      前端页面需要传入筛选条件,和需要查询的页数(limit是根据(currentPage-1)*pagesize),后端的pagesize是固定的10(也可以从前端传入),当currentPage是1,表示从筛选的结果中选0,10条数据,如果currntPage是4,就是第四页(limit 40,50)

      

           

            

     3、返回HashMap

    List<Map<String, Object>> autocomplate(String keyword);
    

      

        <select id="autocomplate" resultType="hashmap">
      	SELECT id,username
      	FROM logininfo
      	WHERE username LIKE concat(#{keyword},'%')
      </select>
    

      

      

  • 相关阅读:
    Spring配置数据源和注解开发
    spring 的配置介绍
    spring
    maven
    mybatis初始
    idea中配置xml不自动提示解决方案(eclipse配置XmlCatalog)
    JSON、AJAX
    ThreadLocal的使用
    Filter过滤器
    谷歌 kaptcha 图片验证码的使用
  • 原文地址:https://www.cnblogs.com/yanxiaoge/p/11674962.html
Copyright © 2011-2022 走看看