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最优秀在于,虽然你已经相当了解她了,,但是根本就不需要显示的用到他们
  • 相关阅读:
    spring boot 配置时区差别
    概率期望
    Euler函数与Euler定理
    素数&筛法
    等差子序列
    8.19 T2
    8.19 T1
    量化交易
    挺进

  • 原文地址:https://www.cnblogs.com/CL-King/p/13871057.html
Copyright © 2011-2022 走看看