MyBatis的核心配置、动态sql、关联映射(快速总结)

本文深入解析MyBatis框架的核心对象SqlSessionFactory和SqlSession的作用与使用方式,涵盖数据库映射关系、持久化操作及配置文件读取。同时,介绍了映射文件的重要元素,如resultType、resultMap、useCache等,以及动态SQL、关联映射的实现方法。

                                                      MyBatis的核心对象和配置

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

                                          作用:创建SQLSession对象。

//读取配置文件
InputSteam is=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元素;

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

 

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

 

转载于:https://www.cnblogs.com/shijinglu2018/p/10372835.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值