• 16_MyBatis中期小结


    【MyBatis是什么】

      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方法】

    一.原始dao的方法(iBatis/MyBatis)

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

      需要dao实现类中注入一个SqlSessionFactory工厂。

    二.mapper代理开发方法(MyBatis,建议使用)

      只需要程序员编写mapper接口。

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

      1.userMapper.xml中的namespace就是userMapper.java的类的全路径。

      2.userMapper.xml中statement的id和userMapper.java中方法名一致。

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

      4.userMapper.xml中statement的resultType指定输出结果的类型和userMapper.java的方法返回值类型一致。

    【输入映射】

      parameterType:指定输入参数类型可以为简单类型、pojo、hashMap....

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

    【输出映射】

      resultType:查询到的列名和resultType指定的pojo的属性名一致。才能映射成功。

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

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

    【高级查询】

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

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

      

  • 相关阅读:
    you don't have permission to access forbidden
    SQL优化之语句优化
    MySQL索引介绍
    com.jcraft.jsch.JSchException: java.io.FileNotFoundException: file:D:developmentideaProjectssalary-card argetsalary-card-0.0.1-SNAPSHOT.jar!BOOT-INFclasses!keystorelogin_id_rsa 资源未找到
    Java 原生日志 java.util.logging
    为什么volatile不能保证原子性?
    SpringCloud-微服务配置统一管理SpringCloud Config(七)
    SpringCloud-微服务网关ZUUL(六)
    SpringCloud-容错处理Hystrix熔断器(五)
    SpringCloud-声明式Rest调用Feign(四)
  • 原文地址:https://www.cnblogs.com/HigginCui/p/5778325.html
Copyright © 2020-2023  润新知