课程复习:
Mybatis是什么?
Mybatis是一个持久层的框架,是一个不完全的orm框架,SQL语句需要自己去编写,但是mybatis也有输入映射和输出映射。
Mybatis入门门槛不高,学习成本低,他主要让程序员把精力放在SQL语句上,对SQL语句优化非常方便,使用于需求变化较多的项目,比如互联网项目。
Mybatis框架执行过程:
1.配置mybatis的配置文件,SqlMapConfig.xml(名称不固定)。
2.通过配置文件,加载mybatis运行环境,创建SqlSessionFactory会话工厂。
SqlSessionFactory在实际使用时按单例方式。
3.通过SqlSessionFactory创建SqlSession。
SqlSession是一个面向用户接口(提供操作数据库方法),实现对象是线程不安全的,所以建议SqlSession应用场合在方法体内。
4.调用SqlSession的方法去操作数据。
如果需要提交事务,需要执行SqlSession的commit()方法。
5.释放资源,关闭SqlSession。
Mybatis开发dao的方法:
1.原始dao的方法(这是原始的ibatis的方法)
需要程序员编写dao接口和实现类。
需要在dao实现要注入一个SqlSessionFactory工厂。
2.mapper代理开发
只需要程序员编写mapper接口(就是dao接口)
程序员在编写mapper.xml和dao接口,需要遵循一个开发规范。
1.在mapper.xml中的namespace就是dao接口的类全路径。
2.mapper.xml中的statement的id和dao接口的方法名,输入参数,输出参数一致。
SqlMapConfig.xml配置文件:可以配置properties属性,typeAlias别名,mapper加载,setting。
输入映射:
ParameterType:指定输入参数类型可以是简单类型,vo实体类
对于综合查询,建议parameter使用包装的vo,有利于系统扩展。
输出映射:
ResultType:查询到的列名和vo实体类的字段名一致,才能映射成功。
ResultMap:可以通过resultMap来完成一些高级的映射。
如果查询到的列名和映射的vo实体类的字段名不一致时,通过resultMap设置列名和属性名之间的对应关系。
高级映射:
将关联查询的列映射到一个vo对象中(一对一)
将关联查询的列映射到list<vo实体类>中。(一对多)
动态SQL(重点)
If判断
SQL片段
Foreach