Mybatis核心开发简述

1,mybatis的三种开发方式
    1>,实体加配置文件
    2>,接口加配置文件
    3>,注解

2,mybatis的五种传入参数类型
    1>,单个参数(mybatis不会做特殊处理)
        #{ssk}
    2>,传入对象pojo
        #{对象的属性名称}
    3>,多个参数(mybatis做特殊处理,把传入的参数自动封装为map类型)
        Map的key就是param1...paramN...
        map.put("param1",);
        map.put("param2",);
        @Param("name")可以使用这个注解,来定义Map封装数据的key值

    4>,直接传入Map
    5>,Collection(集合)类型(List,Set),数组。(mybatis做特殊处理)
        如果是List或者Set,封装到Map中
        map.put("list",你传入的集合)
        如果是数组
        map.put("array",你传入的数组)

3,动态SQL
    完成逻辑判断和动态拼接sql
    trim/where/foreach/if/choose/when/otherwise/bind/set

4,多表封装
    1>,resultMap
    2>,association标签来指定关联的Javabean的封装方式(使用它可以<分步骤查询>,<延迟加载>)

5,mybatis缓存(Cache)
    1>,一级缓存SqlSession
        默认开启的
        有效期:
            1,不是同一个SqlSession对象时数据不能互用
            2,SqlSession对象调用.clerCache()方法时,会自动清空缓存数据,SqlSession对象还是可以正常使用
            3,SqlSession对象关闭的时候,SqlSession对象就不能再使用了
            4,当两次相同的查询中,穿插了,增删改操作,也会清除缓存数据
        原理和性能:
            1,通过简单的Map集合来实现,没对Map的大小容量进行限制
            2,粗粒度的缓存,无法精确控制缓存数据是否过长是否过期,以及更新缓存数据
            3,多个SqlSession对象换粗数据无法共享
    2>,二级缓存namespace(一个xml文件对应一个二级缓存)
        二级缓存需要手动配置和开启
        1,在总配置文件中设置开启
            <setting name="cacheRnabled" vlaue="true"/>
        2,需要在映射文件中添加
            <cache>标签
        3,实体类需要实现序列化接口
            implement Serializable
    
        缓存查找顺序:先从二级—— 一级 —— 数据库
    3>,开放了Cache接口,整合第三方缓存。

        

猜你喜欢

转载自blog.csdn.net/LittleMangoYX/article/details/81265375