• 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>
    

      

      

  • 相关阅读:
    ecshop 浏览历史样式的修改
    onmouseover 执行 ToolTip 控件
    e​c​s​h​o​p​模​板​ l​b​i​文​件
    JS中 document.getElementById 对象
    JS CSS 网页 简单 右侧 悬浮
    css 简单 返回顶部 代码及注释说明
    php截取等长UFT8中英文混合字串
    Smarty中模板eq相等 ne、neq不相等, gt大于, lt小于
    iOS UI-集合视图(UICollectionView)
    iOS UI-表格控制器(UITableView)-基本使用
  • 原文地址:https://www.cnblogs.com/yanxiaoge/p/11674962.html
Copyright © 2020-2023  润新知