面试题
一.HTTP-请求注解
请求方式-GET:请求参数在请求行中,没有请求体。GET请求大小是有限制的
请求方式-POST:请求参数在请求体中,POST的请求大小是没有限制的。
过程
一.分层解耦-三层架构
controller层
控制层,接收前端发送到请求,对请求进行处理,并响应数据
service层
业务逻辑层,处理具体的业务逻辑
dao层
数据访问层(Data Access Object)(持久层),负责数据访问操作,包括数据的增、删、改、查。
二.分层解耦-IOC&DI
1.Service层及Dao层的实现类,交给IOC容器管理
2.为Controller及Service注入运行时,依赖的对象
@Component //将当前类交给IOC容器管理,成为IOC容器中的bean @Autowired //运行时,IOC容器会提供该类型的bean对象,并赋值给该变量-依赖注入
@Component //将当前类交给IOC容器管理,成为IOC容器中的bean
public class EmpServiceA implements com.example.service.EmpService {
@Autowired //运行时,IOC容器会提供该类型的bean对象,并赋值给该变量
private EmpDaoA empDao;
@RestController
public class EmpController {
@Autowired
private EmpService empService;
3.声明bean的注解
@Component,@Controller,@Service,@Repository @SpringBootApplication具有包扫描作用,默认扫描当前包及其子包
三.Mybatis
数据库连接
#驱动名称
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
#数据库连接的url
spring.datasource.url=jdbc:mysql://localhost:3306/test
#连接数据库的用户名
spring.datasource.username=root
#连接数据库的密码
spring.datasource.password=123456
Lombok
@Getter
@Setter //为所有属性提供get/set方法
@ToString //会给类自动生成易阅读的toString方法
@EqualsAndHashCode //根据类所拥有的非静态字段自动重写equals方法和hashCode方法
@NoArgsConstructor //无参构造
@AllArgsConstructor //有参构造
@Data //等于@Getter + @Setter + @ToString + @EqualsAndHashCode
public class User {
private Integer id;
private String name;
private Integer age;
private String gender;
private String phone;
}
基本操作
删除接口方法
@Delete("delete from user where id= #{id}")
public void delete(Integer id);
插入接口方法
@Insert("insert into user(username, name, age, gender) VALUES (#{username},#{name},#{age},#{gender})")
public void insert(User user);
更新接口方法
@Update("update user set username=#{username},name=#{name},age=#{age},gender=#{gender} where id= #{id}")
public void update(User user);
查询接口方法
@Select("select * from user where id=#{id}")
public User userSelect(Integer id);
多参数查询
@Select("select * from user where username like concat('%',#{username},'%') and gender = #{gender} ;")
public List<User> list(String username,String gender);