和1对1的用法类似
以根据用户查询多个地址信息举例
用collection直接进行联查//AddressMapper.xml
select * from t_address where user_id = #{userId}
//UserMapper.xml
select * from t_user where id = #{id}
注意id,主外键关系
嵌套//UserMapper.xml
略
连接池
面向数据库连接,主要是为了优化数据库的连接资源的。
mybatis-config.xml中,
type:UNPOOLED不适用连接池、POOLED使用连接池、JNDI使用JNDI实现的连接池
事务
特性:原子性、一致性、隔离性、持久性
自动提交:sqlSession= MybatisUtils.openSession(true);,设置后不需要commit。
回滚:sqlSession.rollback();
事务的隔离机制 三个问题脏读、不可重复读、幻读
四种隔离机制读未提交、读已提交、可重复读、序列化
迟加载collection标签中配置fetchType="lazy"
优点:在使用到数据的时候加载,提高了数据库的性能
缺点:等待时间变长
缓存机制 一级缓存SqlSession级别的缓存,只要没有进行close和flush操作,缓存中就存在,可直接从缓存中获取信息。
二级缓存mapper映射级别,多个SqlSession操作同一个mapper的sql语句,多个sqlSession共用二级缓存。
开启:
语句中配置useCache="true"
使用二级缓存的类 implements Serializable



