Mybatis
Mybatis的介绍
1. Mybatis是持久层层框架,是半ORM(对象关系映射)框架.
2. 使用Mybatis有两类配置文件
* 核心配置文件: mybatis-Config.xml
* 映射配置文件: 与接口相对应的xml文件
3. 核心的API:
* SqlSessionFactoryBuilder : 构建者模式
* SqlSessionFactory : 工厂模式
* SqlSession
4. 执行的流程
1. 读取配置文件
2. 使用SqlSessionFactoryBuilder的builder方法获取SqlSessionFactory
3. 使用sqlSessionFactory的openSession方法获取SqlSession
4. 使用sqlSession的getMapper方法获取接口的代理对象
5. 测试方法即可
5. 了解Mybatis底层使用的知识点:
* 反射
* 构建者模式,工厂模式,代理模式
* xml配置文件的相关操作
Mybatis的基本开发
1. 规范:
* xml配置文件中的namespace与接口的全限定类名相同.
* 动态标签的id与接口的方法名一致
* xml的配置文件和接口的包名与接口名一致
2. sql语句的写法:
* $ : 字符串拼接符,简单数据类型使用${value},复杂类型就是${属性}
* # : 占位符
3. 插入的主键返回:
<selectKey keyProperty="" keyColumn="" resultType="" order="AFTER">
select LAST_INSERT_ID()
</selectKey>
4. 动态sql:
1. <sql id=""></sql> : sql片段
2. <if test=""> : if判断
3. <where> : 添加条件,自动添加 where 1 = 1并且去掉拼接条件后的第一个and
4. <foreach collection="" open="" close="" item="" separator=""> : 遍历集合
5. sql的输入输入参数的传递:
* 输入参数: parameterType
* 输出参数: resultType, resuleMap
6. 核心配置文件:
* <properties> : 加载外部properties资源文件
* <typeAlises> : 起别名
* <mappers> : 加载映射的xml配置文件
* <enviroments> : 配置数据库的连接信息
1. 事务 : JDBC事务
2. 连接池 :
* POOLED : 连接池
* UNPOOLED : 每次创建新的
* JNDI
3. mybatis默认是不自动提交的,可以在openSession中传入true开启自动提交
7. 关联查询(一对多,多对多)
* 使用resultMap来进行相关的查询:
1. <association javaType=""> : 单个pojo
2. <collection ofType=""> : 集合
8. 延迟加载(需要在核心配置文件中开启延迟加载的开关)
9. Mybatis的缓存:
* 一级缓存: sqlSession
* 二级缓存: sqlSessionFactory(需要开启二级缓存的开关)
10. 注解开发:
* @Insert
* @Select
* @Update
* @Delete
* @Results
* @Result
* @ResultMap
* @One
* @Money
* @CacheNamespace