个人博客实战笔记1

1、使用shiro进行认证登录之后,如果需要退出,那么需要调用shiro的logout,不然再次登录会报错

登录

@RequestMapping("/login")
public String login(String username, String password, RedirectAttributes redirectAttributes) {
    
    
    Subject subject = SecurityUtils.getSubject();
    UsernamePasswordToken token = new UsernamePasswordToken(username, password);
    if (!subject.isAuthenticated()) {
    
    
        try {
    
    
            subject.login(token);
            return "admin/index";
        } catch (UnknownAccountException e) {
    
    
            redirectAttributes.addFlashAttribute("message", "用户名错误!");
        } catch (IncorrectCredentialsException e) {
    
    
            redirectAttributes.addFlashAttribute("message", "密码错误!");
        }
        return "redirect:/admin";
    }
    return "admin/index";
}

注销

@GetMapping("/logout")
public String logout(HttpSession session) {
    
    
    //session清理用户
    session.removeAttribute("user");
    // shiro注销用户
    Subject subject = SecurityUtils.getSubject();
    subject.logout();
    return "redirect:/admin";
}

2、Mybatis开启驼峰命令

mybatis:
  type-aliases-package: com.cqupt.blog.entity
  mapper-locations: classpath:com/cqupt/mapper/*.xml
  configuration:
    map-underscore-to-camel-case: true
  • 作用:可以省写resultMap

不开启

<resultMap id="BaseResultMap" type="com.lvjing.domain.housekeeping.WxCleaner">
    <result column="id"   property="id"/>
    <result column="cleaner_name"   property="cleanerName"/>
    <result column="cleaner_mobile"   property="cleanerMobile"/>
    <result column="current_order"   property="currentOrder"/>
    <result column="password"   property="password"/>
    <result column="remark"   property="remark"/>
    <result column="create_time"   property="createTime"/>
</resultMap>

开启(只需要指定实体类)

<resultMap id="BaseResultMap" type="com.lvjing.domain.housekeeping.WxCleaner">
</resultMap>

但是sql语句不能这么写

select * from user where cleanerName=#{cleanerName}

3、PageHelper插件使用细节

  1. 静态方法,传递两个参数(当前页码,每页查询条数)
  2. 使用pageHelper 分页的时候,不再关注分页语句,查询全部的语句
  3. 自动的对 PageHelper.startPage 方法下的第一个sql 查询进行分页(不用写错位置了)
PageHelper.startPage(1,5);
//紧跟着的第一个select 方法会被分页
List<Country> list = countryMapper.findAll();

也就是说再Service层PageHelper.startPage(1,5);语句后一定是紧跟查询语句。

猜你喜欢

转载自blog.csdn.net/qq_42372017/article/details/111333865
今日推荐