9.Lombok
使用步骤:
1.在IDEA中安装Lombok插件
2.在项目中导入lombok的jar包
3.在实体类上加注解即可!
@Getter and @Setter
@FieldNameConstants
@ToString
@EqualsAndHashCode
@AllArgsConstructor, @RequiredArgsConstructor and @NoArgsConstructor
@Log, @Log4j, @Log4j2, @Slf4j, @XSlf4j, @CommonsLog, @JBossLog, @Flogger, @CustomLog
@Data
@Builder
@SuperBuilder
@Singular
@Delegate
@Value
@Accessors
@Wither
@With
@SneakyThrows
@val
@var
experimental @var
@UtilityClass
Lombok config system
说明:
@Data:无参构造方法,get,set,tostring,hashcode,equals
@AllArgsConstructor 有参构造方法 @NoArgsConstructor 无参构造方法
@ToString @EqualsAndHashCode
@Getter
10.多对一处理
多对一:
多个学生对应一个老师
对于学生这边而言,关联..多个学生,关联一个老师[多对一]
对于老师而言,集合,一个老师,有很多学生[一对多]
SQL:
表的架构:
测试环境搭建
1.导入lombok
2.新建实体类Teacher,Student
3.建立Mapper接口
4.建立Mapper.xml文件
5.在核心配置文件中绑定注册我们的Mapper接口或者文件
6.测试查询是否成功!
pom.xml--->db.properties---->mybatis-config.xml--->DBUtils--->实体类----->接口----->测试
按照查询嵌套处理
接口:
StudentMapper.xml:
测试:
按照结果嵌套处理
接口:
StudentMapper.xml:
测试:
回顾Mysql多对一查询方式:
子查询
联表查询
11.一对多
比如:一个老师拥有多个学生!
对于老师而言,就是一对多的关系!
1.环境搭建和刚才一样
实体类:
按结果查询:
接口:
TeacherMapper.xml:
测试:
按嵌套查询:
接口:
TeacherMapper.xml:
测试:
瑕疵:教师的id是0
小结:
1.关联-association[多对一]
2.集合-collection[一对多]
3.javaType & offType
1.javaType 用来指定实体类中属性的类型
2.offType用来指定映射到List或者集合中的pojo类型,泛型中的约束类型!
注意点:
保证SQL的可读性,尽量保证通俗易懂
注意一对多和多对一中属性名和字段的问题
如果问题不好排查错误,可以使用日志,建议使用Log4j
慢SQL 1s 1000s
面试高频
Mysql引擎
InnoDB的底层原理
索引
索引优化