Servlet常用注解:
@WebServlet:注册servlet
编写好Servlet之后,接下来需要要告诉Web容器有关于这个Servlet的一些信息。
在Servlet 3.0中,可以使用标注(Annotation)来告知容器哪些Servlet会提供服务以及额外信息。
也就是说:web.xml中对Servlet配置,同样可以在 @WebServlet 注解中配置.
主要注意的是:
如果是SpringBoot项目,需要在主启动类上面添加 @ServletCompontntScan 注解
下面使用xml与注解进行一个比对:
MyBatis常用注解:
@Param :传递参数
- @Param是MyBatis所提供的(org.apache.ibatis.annotations.Param),
- 作为Dao层的注解,作用是用于传递参数,从而可以与SQL中的的字段名相对应,一般在2=<参数数<=5时使用最佳。
- @Param是地处Dao层,是为了传递多个参数,解决的是可读性和直观性;
- 在方法只接受一个参数的情况下,可以不使用@Param。
- 在方法接受多个参数的情况下,建议一定要使用@Param注解给参数命名。
- 如果参数是 JavaBean , 则不能使用@Param。
- 不使用@Param注解时,参数只能有一个,并且是Javabean。
- 基本类型 的参数或者String类型都需要加上
- 引用类型不需要加
- 我们在sql 中引用的就是我们这里的@Param("")中设定的属性名
@Mapper:标记持久层
@Mapper与@Repository的相同点
两个注解都可在dao/mapper层使用(用来标记持久层),生成相应代理对象bean注入到spring容器中。
@Mapper与@Repository的不同点
@Mapper是mybatis的注解,可以单独使用,也允许存在在多个mapper文件,它不需要在Spring中配置扫描地址,通过xml里面的namespace里面的接口地址,生成Bean后注入到Service层中。
@Repository是spring提供的注解,能够将该类注册成Bean。被依赖注入,但是使用该注解后,在启动类上要加@MapperScan来表名Mapper类的位置,否则扫描不到。但在idea中,使用@Repository可以消除在业务层中注入mapper对象时的错误。
@MapperScan:扫描持久层接口
Mybatis-Plus常用注解:
@TableName
注解在类上,指定类和数据库表的映射关系。实体类的类名(转成小写后)和数据库表名相同时,可以不指定该注解。
@TableId
注解在实体类的某一字段上,表示这个字段对应数据库表的主键。
在插入数据的时候如果不指定id的数据,mp会自动进行填充数据(雪花算法)
@TableField
注解在某一字段上,指定Java实体类的字段和数据库表的列的映射关系。这个注解有如下几个应用场景。
数据库表跟实体类属性不对应:比如数据库中是"name",实体类中是private String username,就需要通过指定数据库中的字段名称
排除非表字段:若Java实体类中某个字段,不对应表中的任何列,它只是用于保存一些额外的,或组装后的数据,则可以设置exist属性为false,这样在对实体对象进行插入时,会忽略这个字段。
排除非表字段也可以通过其他方式完成,如使用static或transient关键字
不查询指定字段属性:在我们查询数据的时候有时候并不想查询显示某一列的数据,就可以设置select属性为false @TableField(select = false)
字段验证策略通过insertStrategy,updateStrategy,whereStrategy属性进行配置,可以控制在实体对象进行插入,更新,或作为WHERE条件时,对象中的字段要如何组装到SQL语句中。
字段填充策略:在表中做数据库的更新和插入字段的时候填充数据,只需要实体类中指定file属性
步骤1、在实体类添加注解
步骤2、自定义实现类 MyMetaObjectHandler:https://mp.baomidou.com/guide/auto-fill-metainfo.html
@Version乐观锁注解
@EnumValue注解在枚举字段上
@TableLogic逻辑删除
作用在实体类的属性上面,表示逻辑删除,指的是不会真正的从数据库中删除记录,而是将deleted(逻辑删除)字段更新为1
*:逻辑删除实质上是执行update语句
KeySequence序列主键策略(oracle)
InterceptorIgnore插件过滤规则
Lombok常用注解:
1、要在idea中添加lombok插件
2、配置lombok的Maven依赖
<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok --> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.12</version> </dependency>