day01
map-underscore-to-camel-case: true:这句话是为了消除数据库的下划线命名和驼峰命名
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl:打印日志
global-config:
db-config:
id-type: ASSIGN_ID:设置数据库自动配置id的方式为自增
这里加载完前端资源之后:如果放在static资源目录下 自动加载
如果没有 那就不能自动访问该目录下的前端资源
那就需要配置一个
WebMvcConfigurationSupport来拦截处理 这个应该和ssm里面一样 外部不能访问 但是java内部可以 所以设计一个拦截器
还有就是 启动类一定放在最外侧
@sl4 是为了log记录日志 每个都要
设计登陆页面:创建几个包 实体类:这个不用多说
service和impl 这个在mp里一定要继承Iservice和 serviceImpl两个接口 目的就是简单 和mp一样写了好多省略的 在实现类上加注解
commer:R.java 这个激素hi吧返回的数据封装 返回 在这里用了一个泛型 目的是方便跟其他的链接
controller:在这个类里实现具体功能 首先加入R和service然后
LambdaQueryWrapper 利用这个查询数据库
LambdaQueryWrapper<Employee> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(Employee::getUsername,employee.getUsername());
Employee emp = employeeService.getOne(queryWrapper);
if(emp == null){ return R.error("登录失败"); } //4、密码比对,如果不一致则返回登录失败结果 if(!emp.getPassword().equals(password)){ return R.error("登录失败"); } //5、查看员工状态,如果为已禁用状态,则返回员工已禁用结果 if(emp.getStatus() == 0){ return R.error("账号已禁用"); } //6、登录成功,将员工id存入Session并返回登录成功结果 request.getSession().setAttribute("employee",emp.getId()); return R.success(emp);
这就是登录之后的结果
@RequestBody 你在页面里拿到的信息 封装到实体类
public static <T> R<T> success(T object) { R<T> r = new R<T>(); r.data = object; r.code = 1; return r; }
这个就是 object的好处 你操作成功后可能返回的类型值不尽相同