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元素;
多对多的话:是在两张表之间建立一个中间表;
具体细节:参看书和笔记。
最新文章
- 【完全开源】知乎日报UWP版(上篇):界面设计、官方API分析
- 简洁的div翻转案例
- Java实现列出目录下所有文件和文件夹
- tomcat 应用部署的几点注意
- asp.net中membership使用oracle数据库(一)
- web前端开发培训和自学 哪种选择更适合你
- EMIF接口的寻址问题
- 最新微信公众平台js sdk整合PHP版
- awk多文件操作
- 从零开始学android开发-获取控件
- HW5.22
- C语言-03流程控制
- js中运算符的优先级
- bootstrap 导航布局
- Oracle impdp通过network_link不落地方式导入数据
- leetcode 169 Majority Element 冰山查询
- Linux用户群组权限恢复
- java 调用 C# webapi
- 0422数学口袋精灵bug发现
- 汇编语言程序环境搭建masm+debug64位 win10/7