zoukankan      html  css  js  c++  java
  • Mybatis小结

    Mybatis

    Mybatis的介绍

    1. Mybatis是持久层层框架,是半ORM(对象关系映射)框架.
    2. 使用Mybatis有两类配置文件
        * 核心配置文件: mybatis-Config.xml
        * 映射配置文件: 与接口相对应的xml文件
    3. 核心的API:
        * SqlSessionFactoryBuilder : 构建者模式
        * SqlSessionFactory : 工厂模式
        * SqlSession
    4. 执行的流程
        1. 读取配置文件
        2. 使用SqlSessionFactoryBuilder的builder方法获取SqlSessionFactory
        3. 使用sqlSessionFactory的openSession方法获取SqlSession
        4. 使用sqlSession的getMapper方法获取接口的代理对象
        5. 测试方法即可
    5. 了解Mybatis底层使用的知识点:
        * 反射
        * 构建者模式,工厂模式,代理模式
        * xml配置文件的相关操作
    

    Mybatis的基本开发

    1. 规范:
        * xml配置文件中的namespace与接口的全限定类名相同.
        * 动态标签的id与接口的方法名一致
        * xml的配置文件和接口的包名与接口名一致
    2. sql语句的写法:
        * $ : 字符串拼接符,简单数据类型使用${value},复杂类型就是${属性}
        * # : 占位符
    3. 插入的主键返回:
        <selectKey keyProperty="" keyColumn="" resultType="" order="AFTER">
            select LAST_INSERT_ID()
        </selectKey>
    4. 动态sql:
        1. <sql id=""></sql>  : sql片段
        2. <if test=""> : if判断
        3. <where> : 添加条件,自动添加 where 1 = 1并且去掉拼接条件后的第一个and
        4. <foreach collection="" open="" close="" item="" separator=""> : 遍历集合
    5. sql的输入输入参数的传递:
        * 输入参数: parameterType
        * 输出参数: resultType, resuleMap
    6. 核心配置文件:
        * <properties> : 加载外部properties资源文件
        * <typeAlises> : 起别名
        * <mappers> : 加载映射的xml配置文件
        * <enviroments> : 配置数据库的连接信息
            1. 事务 : JDBC事务
            2. 连接池 : 
                * POOLED : 连接池
                * UNPOOLED : 每次创建新的
                * JNDI
            3. mybatis默认是不自动提交的,可以在openSession中传入true开启自动提交
    7. 关联查询(一对多,多对多)
        * 使用resultMap来进行相关的查询:
            1. <association javaType=""> : 单个pojo
            2. <collection ofType=""> : 集合
    8. 延迟加载(需要在核心配置文件中开启延迟加载的开关)
    9. Mybatis的缓存:
        * 一级缓存: sqlSession
        * 二级缓存: sqlSessionFactory(需要开启二级缓存的开关)
    10. 注解开发:
        * @Insert
        * @Select
        * @Update
        * @Delete
        * @Results
        * @Result
        * @ResultMap
        * @One
        * @Money
        * @CacheNamespace
  • 相关阅读:
    程序员偷偷深爱的9个不良编程习惯
    JQuery实现放大镜
    ACM1995
    liubo.im
    Linux中的一些点
    EPOLL使用详解
    Elays'Blog
    c#数据库解析
    codeforces #332 div 2 D. Spongebob and Squares
    类型
  • 原文地址:https://www.cnblogs.com/wadmwz/p/9758315.html
Copyright © 2011-2022 走看看