zoukankan      html  css  js  c++  java
  • MyBatis的核心配置、动态sql、关联映射(快速总结)

                                    MyBatis的核心对象和配置

    #1. SqlSessionFactory对象: 单个数据库映射关系经过编译的内存镜像;

                                                     作用:创建SQLSession对象。

    //读取配置文件
    InputSteam is=xx.getResourceAsStream("配置文件位置");
    
    //用SqlSessionFactoryBuilder()创建实例,并用build方法创建SqlSessionFactory,在会话工厂中去处理配置文件
    sqlSessionFactory sqlSessionFactory=new SqlSEssionFactoryBuilder().build(is);

    #2.SqlSession对象:应用程序与持久层间执行交互操作的一个单线程对象;   

                                      作用:执行持久化操作。

                                      说明:其底层封装了jdbc连接和执行sql的一些操作(如增删改查、提交、回滚、关闭SqlSession、返回接口代理对象等),

                                                所以可用该实例对象执行已映射的SQL语句。

    -------------------------------------------------------------------------------------------------------------------------------------

    映射文件

          重要元素:

                        resultType:结果返回值

                        resultMap:引入外部resultType.

                        useCache:用于控制二级缓存的。

                        flushCache:表示是否情况缓存

                        useGeneratedKeys:获自增主键

                        

           <sql>元素:为减少sql复杂的,对于一些高频字段,直接将其提出来

                    

                    <sql  id="customerColumns">id,username...</sql>
    
                        ...
    
                       select <include  refid="customerColumns"/>
    
                       from  table
    
                       ...

             <resultMap>元素:结果集的映射;

                         使用场景:当实体类与表字段名不对应。

    ----------------------------------------------------------------------------------------------------------------------------------

                     

                                                                              动态SQL

    动态SQL:对SQL进行动态组装和逻辑控制。

                     <if>:单条件分支判断

            <choose>:相当于是switch...case

             <where>:特殊字符的sql拼接

           <foreach>:用于in之后的条件列举    

               <bind>:常应用于模糊查询;

    ------------------------------------------------------------------------------------------------------------------------------------

                                                                              关联映射     

    一对一的话:是在resultMap节点中添加association元素;      在association元素在其中嵌套另外一个表空间名。

    一对多的话:是在resultMap节点中添加collection元素;

    多对多的话:是在两张表之间建立一个中间表;

    具体细节:参看书和笔记。

      

    成年人的世界没有那么多的童话,也没有那么多的逆袭。
  • 相关阅读:
    就打排序算法总结
    php 垃圾回收机制写时复制和引用计数
    zend studio 使用断点调试
    SiteServer 迁移至 Windows 2008 R2 问题汇总
    [项目改造中的点滴]C#中IDataReader和DataSet的区别与使用场景
    顺序分支知识总结
    我的第一篇博客
    [原创]删除GRUB引导恢复Windows引导,不用下载任何工具
    在C++builder中使用正则表达式,非boost库,简单!~
    SQL 存储过程优化经验
  • 原文地址:https://www.cnblogs.com/shijinglu2018/p/10372835.html
Copyright © 2011-2022 走看看