Mybatis(2)

一、Mybatis工具类的封装

Mybatis(2)

二、mapper文件中的另一种取值语法

  1. ${}取值方式的使用
    Mybatis(2)
  2. #{} 与${} 两种语法生成SQL语句的方式对比
    2.1 #{ }
    Mybatis(2)
    2.2 ${ }
    Mybatis(2)

三、mybatis其他常用的全局配置

  1. 给实体类起别名
    ① 第一种方式
    Mybatis(2)
    ② 第二种方式
    Mybatis(2)
  2. 配置文件参数化
    2.1 实际开发的场景下, mybtais-config.xml全局配置文件的内容会比较大, 而针对于数据库相关的参数, 会涉及到经常的修改,为了提高项目的可维护性,我们将数据相关的配置提取到一个单独的小配置文件保存。
    2.2 重构过程
    ① 先将数据库相关参数保存到一个小配置文件
    Mybatis(2)
    ②在mybatis-config.xml中引入小配置文件
    Mybatis(2)
    ③ 在需要使用小配置文件参数的位置,取出小配置文件中的值
    Mybatis(2)

四、关于mybatis的结果集映射

  1. mybatis默认结果集封装规则: mybatis默认会将数据库查询返回结果集中的字段名, 对应封装到实体类属性名一致的属性上。

  2. 当查询返回结果集中的字段名与实体属性名不一致的解决
    2.1 第一种方案: 给字段起个别名,与对应实体类属性名一致。
    Mybatis(2)
    2.2 第二种方案: 使用mybatis的resultMap自定义结果集映射关系。
    Mybatis(2)注意: resultMap未来主要用于多表查询时的结果集映射封装。

五、关联关系

  1. 一对一
    一个人拥有一个身份证 。 一个身份证只能属于一个人。
  2. 一对多
    一个部门有多个员工。 一个员工属于一个部门。
    一个用户有多个订单。 一个订单属于某一个用户。
    一个班级有多个学生。 一个学生属于一个班级。
  3. 多对多
    一个学生可以选修多门课程。 一门课程可以被多名学生选修。

六、使用Mybatis开发关联关系的查询

  1. 表的设计
    1.1 一对一的场景
    一对一的场景,表的外键放在哪一方都可以。
    Mybatis(2)
    1.2 一对多场景 : 外键存放在多的一方。
    Mybatis(2)

  2. Java中的对应实体类设计
    2.1 一对一 : 对于关系属性,放置在 根据谁找谁的 , 根据谁的一方。
    Mybatis(2)
    2.2 一对多:对于关系属性,放置在 根据谁找谁的 , 根据谁的一方。
    Mybatis(2)
    注意: 关系属性的确立,要根据实际的业务场景进行分析, 一般很少有双向关系的场景。

  3. 使用mybatis开发关联关系的查询
    3.1 一对一mapper实现
    Mybatis(2)
    3.2 一对多mapper实现
    Mybatis(2)

七、总结

  1. 关联关系Mybatis查询的实现
    1.1 如果关系属性是一个简单的Java自定义对象类型,使用 association标签封装。
    1.2 如果关系属性是一个list集合,则使用Collection标签封装。