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的方法
需要程序员编写dao接口和实现类。
需要在dao实现类中注入一个SqlSessionFActory工厂
2. mapper代理开发方法
只需要程序员编写mapper接口,(即是dao接口)
程序员在编写 mapper.xml映射文件 和
mapper.java需要遵循一个开发规范:
1> 在mapper.xml中namesapce 就是mapper.java 的全路径
2> mapper.xml中statement的id 和mapper.java中方法名一致
3> mapper.xml中statement的parameterType指定输入参数的类型和 mapper.java的方法输入参数类型一致
4> mapper.xml 中statement resultType指定输出结果的类型和mapper.java的方法返回值类型一致
sqlMapperConfig.xml
配置文件,可以配置properties属性、别名、mapper加载
输入映射
parameterType:指定输入参数类型,可以是简单类型、pojo、hashmap
输出映射
resultType
resultMap
高级映射
将关联查询的列映射到一个pojo的属性中 (一对一)
将关联查询的列映射奥一个list<pojo> (一对多)
动态sql:(重点)
if判断
where
foreach
sql片段