【无标题】

前言

瑞吉外卖项目,day01帮助与总结


提示:以下是本篇文章正文内容,下面案例可供参考

一、1.@Mapper与@Repository?

1.相同点
@Mapper和@Repository都是作用在dao层接口,使得其生成代理对象bean,交给spring 容器管理,对于mybatis来说,都可以不用写mapper.xml文件

2.不同点
@Repository需要在Spring中配置扫描地址,然后生成Dao层的Bean才能被注入到Service层中也就是@Repository多了一个配置扫描地址的步骤;

其中与@Repository同类的有:
创建对象的注解
@Component:可以创建任意对象.创建的对象的默认名称是类名的驼峰命名法.也可以指定对象的名称@Component(“指定名称”).
@Controller:专门用来创建控制器的对象(Servlet),这种对象可以接收用户的请求,可以返回处理结果给客户端.
@Service:专门用来创建业务逻辑层的对象,负责向下访问数据访问层,处理完毕后的结果返回给界面层.
@Repository:专门用来创建数据访问层的对象,负责数据库中的增删改查所有操作.

二、设置静态资源映射

	config
		WebMvcConfig
在这里插入代码片
```package com.itheima.reggie.config;

import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;

import java.util.WeakHashMap;

@Slf4j
@Configuration
public class WebMvcConfig extends WebMvcConfigurationSupport {
    /**
     * 设置静态资源映射
     * 将静态的html文件,在url中无法访问,映射之后才可以,springboot建议的
     * 是放在statci中才可以直接访问
     * @param registry
     */
    @Override
    protected void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/backend/**").addResourceLocations("classpath:/backend/");
        registry.addResourceHandler("/front/**").addResourceLocations("classpath:/front/");
        log.info("开始进行静态资源映射");
    }
}


## 1.引入库
代码如下(示例):

```c
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import warnings
warnings.filterwarnings('ignore')
import  ssl
ssl._create_default_https_context = ssl._create_unverified_context

三、登录代码

@PostMapping("/login")
    public R<Employee> login (HttpServletRequest request,@RequestBody Employee employee){
        //1。将页面提交的密码password进行md5加密
        String password = employee.getPassword();
        //密码加密
        password = DigestUtils.md5DigestAsHex(password.getBytes());
        //2。根据页面提交的用户名username查询数据库
        LambdaQueryWrapper<Employee> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.eq(Employee::getUsername,employee.getUsername());
        Employee emp = employeeService.getOne(queryWrapper);
        //3。如果没有查询到则返回登陆失败结果
        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);
    }

注释:
 ```Mybatis-plus的四种lambda方式
 		lambada表达式,可以通过方法引用的方式来使用实体字段名的操作,避免直接写数据库表字段名时的错写名字
 		一。LambdaQueryWrapper<>
 		二。QueryWrapper<实体>.lambda()
 		三。Wrappers.<实体>lambdaQuery()
 
//2。根据页面提交的用户名username查询数据库
        LambdaQueryWrapper<Employee> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.eq(Employee::getUsername,employee.getUsername());
        Employee emp = employeeService.getOne(queryWrapper);

此问题的详解请跳转:https://www.cnblogs.com/cy0628/p/15147593.html
LambdaQueryWrapper的条件构造器方法对应Sql
setSqlSelect	SELECT 查询字段
where	WHERE 语句,拼接 + WHERE 条件
where	WHERE 语句,拼接 + WHERE 条件
and	AND 语句,拼接 + AND 字段=值
andNew	AND 语句,拼接 + AND (字段=)
or	OR 语句,拼接 + OR 字段=值
orNew	OR 语句,拼接 + OR (字段=)
eq	等于=
allEq	基于 map 内容等于=
ne	不等于<>
gt	大于>
ge	大于等于>=
lt	小于<
le	小于等于<=
like	模糊查询 LIKE
notLike	NOT LIKE模糊查询
in	IN 查询
notIn	NOT IN 查询
isNull	NULL 值查询
isNotNull	IS NOT NULL
groupBy	分组 GROUP BY
having	HAVING 关键词
orderBy	排序 ORDER BY
orderAsc	Asc 排序 ORDER BY
orderDesc	DESC 排序 ORDER BY
exists	EXISTS 条件语句
notExists	NOT EXISTS 条件语句
between	BETWEEN 条件语句
notBetween	NOT BETWEEN 条件语句
addFilter	自由拼接 SQL
last	拼接在最后,例如:last(“LIMIT 1)
————————————————
版权声明:本文为CSDN博主「LouisMin23」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_44768683/article/details/125361065
lambda表达式详解:https://www.cnblogs.com/haixiang/p/11029639.html

 Employee emp = employeeService.getOne(queryWrapper);
 getOne方法来自于:Service层中
  @Autowired
    private EmployeeService employeeService;
    自动注入进employeeService对象中实现的Iservice借口中的方法
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值