Mbatis是什么?怎么运行?

一   .    Mybatis是什么?

                 Mybatis是一个持久层框架,其中编写的过程中sql语句是需要程序员自己去编写,Mybatis也有

一些映射(输入参数映射,输出参数映射),Mybatis是一个不完全的ORM框架。在项目应用中成本较低

不同于hib(成本较高) 在编写Mybatis中程序员只需要把精力放在sql语句上即可,Mybatis对sql

语句的优化非常方便,而hibernate 对sql语句的变更较Mybatis差,所以Mybatis适用于需求变化较多

的项目,比如互联网项目。(简化底层的sql)

二   .   Mybatis框架的执行过程

                    1.配置mybatis配置文件,SqlmapConfig.xml(https://www.cnblogs.com/g2vbn/p/9345659.html)

                     2.通过配置文件加载Mybatis运行环境,创建SqlSessionFactory会话工厂,通过SqlSessionFactory创建

SqlSession(面向接口{原始的dao,Mybatis的mappper接口})SqlSession提供操作数据库的方法

                     3. 调用SqlSession的方法去操作数据库(增删改查......)

                     4.释放资源

三    .   Mybatis开发dao层的方法:

                    Mybatis开发dao有两种方法

                          1.原始dao(需要程序员掌握,现在有的公司还在用)                

                                    需要编写dao接口的实现类 ,在dao实现类中注入SqlSessionFactory工厂

                           2.mapper代理开发()

                                     需要编写mapper接口(就是dao接口)

                                     程序员在编写mapper.xml和mapper.java时需要遵循开发规范:

                                                  (1)在mapper.xml中namespace就是mapper的类的全路经

                                                  (2) mapper.xml中statement的id鹅mapper.java中方法名一致

                                                  (3) mapper.xml中statement的parameterType指定输入参数的类型和mapper.java的方法输入参数类型一致

                                                  (4)mapper.xml中statement的resultType指定输出类型和mapper.java的方法返回值类型一致

四。输入输出映射

                  1.输入映射 

                              parameterType:指定输入参数类型的可以简单类型,pojo ,hashmap....

对于综合查询,建议parameterType使用包装过的pojo,有利于系统维护,扩展

                    2.输出映射

                                resultType:

                                      查询到的列名和resultType的属性名一致才能映射成功

                                resultMap:

                                       可以通过resultMap完成一些高级映射

                             如果查询到的列名和映射的pojo属性名不一致时,通过resultMap设置列名和属性名之间的对应关系,可以完成映射

                             高级映射:将关联查询的列映射到一个pojo属性中(一对一)

                                               将关联查询的列映射到一个List《pojo》中(一对多)

五. 动态Sql

                   if判断   

                   where(去掉第一个and)

                   foreatch

                  sql片段

 

posted @ 2018-07-21 10:02  你是长颈鹿吗  阅读(345)  评论(0编辑  收藏  举报