zoukankan      html  css  js  c++  java
  • mybatis小总结

    mybatis是一个持久层的框架,是一个不完全的orm框架。sql语句需要程序员自己去编写,但是mybatis也有映射(输入参数映射,输出结果映射)

    mybatis入门门槛不高,学习成本低,让程序员把精力放在sql语句上,对sql语句优化比较方便,适用于需求变化比较多的项目,比如互联网项目。

    mybatis执行过程

    1、配置mybatis的配置文件 SqlMapConfig.xml(名称不固定)

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

    SqlSessionFactory在实际使用师按单例方式

    3、通过工厂创建SqlSession会话

    SqlSession是面向用户接口(提供操作数据库的方法),实现对象是线程不安全的,建议SqlSession使用场合在方法体内。

    4、调用SqlSession的方法来操作数据库

    如果需要提交事务 需要执行SqlSession的commit()方法

    5、关闭SqlSession( 释放资源)

    mybatis开发dao的方法:

    1、原始dao方法

      需要程序员编写dao接口和实现类

      需要在dao实现类中注入SqlSessionFactory工厂

    2、Mapper代理的开发方法 mybatis特有的方法(建议使用)

      只需要程序员编写Mapper接口(dao接口)

      程序员在编写mapper.xml(映射文件)和mapper.java 需要遵循一个开发规范:

      1、在mapper.xml中的namespace就是mapper.java的全路径

      2、mapper.xml中的statement的id和mapper.java中的方法名一致

      3、mapper.xml中的parameterType中的类型和mapper.java中的方法中的参数一致

      4、mapper.xml中的resultType中的类型和mapper.java中的方法返回值一致

    SqlMapConfig.xml文件可以配置properties、别名、mapper加载...

    输入映射:

      parameterType:指定输入参数类型,可以是简单、pojo、hashmap。。

      对于综合查询 建议parameterType的类型使用包装pojo,有哦利于系统扩展

    输出映射:

      resultType:查询到的列名和pojo的属性名一致才可以映射成功

      resultMap:可以通过resultMap完成高级和复杂的映射 如果查询到的列名和最终的pojo的属性名不一致时,就可以通过resultMap设置列名和属性名的对应关系(映射关系) 完成映射

        高级映射:

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

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

    动态sql:

      if判断

      where

      foreach

      sql片段

  • 相关阅读:
    Django 信号
    Python标准库12 数学与随机数 (math包,random包)
    利用python进行数据分析之数据聚合和分组运算
    利用python进行数据分析之绘图和可视化
    Django Aggregation聚合
    配置使用TargetFrameworks输出多版本类库
    WebApi 异常处理解决方案
    WebApi(6) 后台C#调用WebApi
    Target frameworks
    C#中lock死锁实例教程
  • 原文地址:https://www.cnblogs.com/mrluotong/p/5881287.html
Copyright © 2011-2022 走看看