首页 > 技术文章 > MyBatis入门——day3

TRUENO-86 2022-02-24 22:07 原文

一 . 使用注解(annotation)开发

  1 . 接口中:

    

 

  2 . 核心配置文件中也要绑定接口

    

 

 

二 . 注解的本质:反射机制的实现,

 

三 . 注解的底层:动态代理

 

四 . 反射机制是什么:

  反射就是把Java类中的各个成分映射成一个个的Java对象。

  即在运行状态中,对于任意一个类,都能知道这个类的所有属性和方法;

          对于任意一个对象,都能调用它的任意方法和属性

   

  • 在运行时判断任意一个对象所属的类。
  • 在运行时构造任意一个类的对象。
  • 在运行时判断任意一个类所具有的成员变量和方法。
  • 在运行时调用任意一个对象的方法。
  • 生成动态代理

五. 在工具类中设置自动提交

  openSession设置为 true 

  

 

 

 

六 . 实现

  1 . 方法存在多个参数时,每个参数前必须加上 @Param 注解,必须保证注解的属性与此处属性名称相同

    例一

 

 

    

    例二(增删改查的注解写法)

    

 

 

 七 . 关于@Param()注解

  1 . 参数为基本类型和 String 类型时需要加上

  2 . 引用类型不需要

  3 . SQL 中引用的就是@Param()中设定的属性名

 

八 . # 与 $ 的区别

  1 . #{} :对 预编译语句中的 占位符 进行替换

    

  2 . ${} :直接对 字符串 进行替换

    

 

 

九 . 第三方工具 Lombok(偷懒神器)              PS:不太推荐使用

  @Data:生成 get、set、toString、Hashcode、equals 等方法

  @AllArgsConstructor:有参构造

  @NoArgsConstructor:无参构造

  使用步骤

    1 . 安装Lombok 插件

    2 . 在项目中导入 Lombok的jar包

    3 . 使用

      

      

      

 

 

十 . 多对一查询

  

 

 

 

  properties:java 类中的,要映射到数据表中某个对应字段的属性名

  column:properties 再数据表中所对应的字段名

  javaType: 

  

  1 . 嵌套查询(又称子查询,不太容易理解) 所有学生的信息和对应的老师信息

    

 

 

  2 .   链表查询(可以理解用SQL里的多表查询) !!!!这种比较好理解!!!!!

    把 resultMap 设置为 StudentTeacher

    在下面用resultMap 说明 StudentTeacher 中那些 对象(java 类) 与数据库字段相对应

    对于有多个属性的对象,使用 association 进行说明

    

 

 

 

 

 

 

 

 

 十一 . 一对多查询(通过一个老师,查询其下的多个学生)

  1 . 实体类

        

 

 

 

  2 . 

    

 

 

 

总结:

    1 . 集合用:collection(用于多对一)

    2 . 关联:association(用于一对多)

    3 . javaType:指定 实体类中的属性

    4 . ofType:指定 映射到 List 或者 集合中 的类型

    

 

 

     

 

    

 

推荐阅读