zoukankan      html  css  js  c++  java
  • Mybatis基础一,生命周期,和作用域,resultMap(结果集映射)

    1.生命周期,和作用域,是至关重要的,因为错误的使用会导致严重的并发问题

    并发问题流程图

    注意:每一个sqlSession对应一个业务

       在用sqlSession去写增删改相关的业务时用提交事务(sqlSession.commit();)

       在每个持久层操作完毕后要将sqlSession关闭(sqlSession.close())

    2.resultMap(结果集映射)

      2.1,为什么模拟场景:更好的了解resultMap(结果集映射),

      2.1,模拟场景:当数据库字段名和对应实体类属性不一致时:

          解决方式一,利用sql语句给字段起别名(让别名跟对应的实体类属性相同)

        <select id="getUserById" parameterType="int" resultType="user">
           select id,name,pwd as password from mybatis.user where id = #{id}
       </select>

        

        方式二,结果集映射

        <!--结果集映射-->
        <resultMap id="userMap" type="user">
            <!--column对应数据库的字段,property对应实体类的属性-->
            <result column="id" property="id"/>
            <result column="name" property="name"/>
            <result column="pwd" property="password"/>
        </resultMap>
    
        <select id="getUserById" parameterType="int" resultMap="userMap">
           select * from mybatis.user where id = #{id}
       </select>

    注意:当使用结果集映射时,sql操作标签中的resultType(返回参数类型)要改成resultMap

    官方文档的解释:

    1. resultMap 元素是 MyBatis 中最重要最强大的元素
    2. ResultMap 的设计思想是,对简单的语句做到零配置,对于复杂一点的语句,只需要描述语句之间的关系就行了。  
    3. ResultMap最优秀在于,虽然你已经相当了解她了,,但是根本就不需要显示的用到他们
  • 相关阅读:
    Linux shell 进制转换
    shell 的getopts用法
    COOKIE 和SESSION
    wcf在iis6上的部署
    fastjson修改json的值(转)
    jsonpath的简单用法(转)
    fastjson序列化定制过滤器
    java操作excel给单元格加下拉列表(转)
    Django Admin管理后台详解1(转)
    Django Admin管理后台详解2(转)
  • 原文地址:https://www.cnblogs.com/CL-King/p/13871057.html
Copyright © 2011-2022 走看看