zoukankan      html  css  js  c++  java
  • 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>中。(一对多)

      

  • 相关阅读:
    网站如何知道浏览器的用户在使用什么语言?
    安装 Couchbase 服务器
    windows Phone 浏览器窗口的尺寸
    【leetcode】 9. palindrome number
    Android Notification实现推送消息过程中接受到消息端有声音及震动及亮屏提示
    UVA 12487 Midnight Cowboy(LCA+大YY)(好题)
    Jenkins——应用篇——插件使用——Publish over SSH
    Linux经常使用命令(三)
    c++引用总结
    quickcocos2dx framework环境变 fatal error C1083: 无法打开源文件:“.Box2D/Dynamics/b2World.h”: No such file or d
  • 原文地址:https://www.cnblogs.com/HigginCui/p/5778325.html
Copyright © 2011-2022 走看看