- MyBatis高级
- 表连接查询
- 一对一
- SQL语句
- SELECT * FROM `user` u INNER JOIN user_info i ON u.id = i.id WHERE u.id=1
- ORM: Object Relational Mapping 对象关系映射
- 表 - 类
- 字段 - 属性
- 记录 - 对象
- 查询用户和扩展信息
- 接口
- User findUserAndInfo(Integer id)
- 配置
- 返回值
- resultType:查询结果的返回类型(类名)
- resultMap: 查询结果是映射关系
- 相关的标签
- resultMap
- 定义表字段名与实体类的属性名之间映射关系
- 属性
- id 映射唯一标识
- type 映射的类,可以使用简写
- autoMapping 如果字段名与属性名相同,则可以自动映射
- id
- 映射表中主键列
- 属性
- column:表中主键列名
- property:实体类中属性的名字
- result
- 映射表中普通的列
- 属性
- column:映射表中普通列名
- property:实体类中属性的名字
- association
- 创建一对一的关系
- 属性
- property: 指定另一方的属性名
- resultMap:指定另一方的映射名字
- resultMap
- 接口
- SQL语句
- 一对多
- SQL语句
- SELECT * FROM `user` u INNER JOIN order_form o ON u.id = o.user_id WHERE u.id=1
- 用户和订单
- 接口
- User findUserAndOrders(Integer id)
- 配置
- 标签
- collection
- 创建一对多的关系
- 属性
- property: 指定另一方的属性名
- resultMap:指定另一方的映射名字
- collection
- 接口
- SQL语句
- 一对一
- 级联查询
- 一对一级联查询
- 相关的标签
- association标签
- property
- 另一方实体类的属性名字
- select
- 下一条SQL语句的方法名
- column
- 方法的参数值从哪一列获取
- property
- association标签
- 代码
- 映射配置
- 核心配置
- 测试代码
-
- 映射配置
- 相关的标签
- 一对多级联查询
- 相关的属性
- collection标签
- property
- 另一方实体类的属性名字
- select
- 下一条SQL语句的方法名
- column
- 方法的参数值从哪一列获取
- property
- collection标签
- 代码
- 映射配置
- 核心配置
- 测试代码
- 映射配置
- 相关的属性
- 一对一级联查询
- 缓存
- 作用:用户第一次查询数据库以后,向内存中保存一份,下次再查询就不再访问数据库,从而提升查询效率。
- 一级缓存
- 在同一个会话中起作用,默认是开启的,可以直接使用
- 如果进行增删改操作,提交了事务,会清除缓存,也可以手动清除缓存
- session.clearCache()
- session.commit()
- 二级缓存
- 在不同的会话中起作用,需要手动开启
- 开启步骤
- 1. 缓存的实体类需要实现序列化的接口
- 因为二级缓存缓存的数据量可能非常大,服务器不会将所有的对象都放在内存中,有些数据放在硬盘的文件中。
- java.io.Serializable
- 2. 在mybatis-config.xml核心配置文件中开启二级缓存
- <setting name="cacheEnabled" value="true"/>
- 3. 在UserMapper.xml中配置最上面,设置<cache/>
- 1. 缓存的实体类需要实现序列化的接口
- 注解方式
- 查询
- 字段名与属性名不同
- 注解
- @Results
- 相当于<resultMap>标签,指定多个@Result
- @Result
- 相当于<result>标签和<id>标签
- @Results
- 代码
- 注解
- 字段名与属性名不同
- 添加并且获取主键
- @Insert
- 写SQL语句,要开启事务
- @Options
- useGeneratedKeys
- true表示获取生成的主键
- keyProperty
- 实体类中主键的属性名
- keyColumn
- 表中主键的字段名
- useGeneratedKeys
- 代码
- @Insert
- 删除
- @Delete
- 修改
- @Update
- 级联查询
- 一对一级联查询
- @Results
- 类似于以前的resultMap,包含多个result注解
- @Result
- property
- 另一方实体类的属性名字
- column
- 方法的参数值从哪一列获取
- property
- @One
- 实现一对一级联查询
- select
- 下一条SQL语句的方法名
- 接口代码
- 测试代码
- @Results
- 一对多级联查询
- @Result
- property
- 另一方实体类的属性名字
- column
- 方法的参数值从哪一列获取
- property
- @Many
- 实现一对多级联查询
- select
- 下一条SQL语句的方法名
- 接口代码
- 测试代码
- @Result
- 一对一级联查询
- 查询
- 表连接查询
MyBatis高级
最新推荐文章于 2024-08-13 10:09:13 发布