1、在后台响应值给AJAX请求时,用map集合是不二之选哦,将数据封装成map集合后再用new Gson( ).toJson(mapJsonStr)方法转为JSON字符串最后响应给AJAX即可
    QQ图片20200722170419.png
    QQ图片20210528105950.png
    2、当有实体类之外的数据,比如验证码也随AJAX请求发送过来时,先获取验证码之后,仍然可以获取到除了验证码之外所有剩下的数据的map集合!因为验证码已经被获取了,所有request.getParameterMap( ); 方法就不会获取到验证码了!也就是说我们就可以先获取验证码参数,然后就可以完美避开验证码参数获取到所有实体类的参数的map集合,接着就可以调用BeanUtils工具类将map集合封装成实体类对象!

    3、写模糊查询SQL语句时两个 ‘%’ ‘%’ 中间的问号要加空格!我也不知道为什么,估计就是如果不加空格的话,连问号也会被看作是单引号里的一部分叭

    1. //正确格式
    2. "select * from article where title like '%' ? '%' and author like '%' ? '%' ";
    3. //错误格式
    4. "select * from article where title like '%'?'%' and author like '%'?'%' ";

    4、封装map集合时,不能使用链式编程直接转为JSON然后发送给AJAX,要一步一步的将map集合的值给封装好才行!

    //正确格式
    Map<String,Object> map = new HashMap<>();
    map.put("flag", true); //这一步不能省略,否则会报异常
    response.getWriter().write(new Gson().toJson(map));
    
    //错误格式
    Map<String,Object> map = new HashMap<>();
    response.getWriter().write(new Gson().toJson(map.put("flag", true)));
    

    5、联表查询也可以联三个表哦

    -- 我的收藏(联了三个表)
    SELECT title, author, content
    FROM `user`
    INNER JOIN collection
    ON user.`id` = collection.`userId`
    INNER JOIN article
    ON article.`id` = collection.`articleId`
    WHERE user.`id` = 1