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元素;

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

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

最新文章

  1. 【完全开源】知乎日报UWP版(上篇):界面设计、官方API分析
  2. 简洁的div翻转案例
  3. Java实现列出目录下所有文件和文件夹
  4. tomcat 应用部署的几点注意
  5. asp.net中membership使用oracle数据库(一)
  6. web前端开发培训和自学 哪种选择更适合你
  7. EMIF接口的寻址问题
  8. 最新微信公众平台js sdk整合PHP版
  9. awk多文件操作
  10. 从零开始学android开发-获取控件
  11. HW5.22
  12. C语言-03流程控制
  13. js中运算符的优先级
  14. bootstrap 导航布局
  15. Oracle impdp通过network_link不落地方式导入数据
  16. leetcode 169 Majority Element 冰山查询
  17. Linux用户群组权限恢复
  18. java 调用 C# webapi
  19. 0422数学口袋精灵bug发现
  20. 汇编语言程序环境搭建masm+debug64位 win10/7

热门文章

  1. golang 中 channel 的非阻塞访问方法
  2. MRJob 极速入门教程,使用Python玩转Hadoop
  3. PHP的数组合并
  4. VUE中过了一遍还不熟悉的东西
  5. WebService/WCF/WebAPI 之间的区别
  6. js判断当前页面是否有父页面,页面部分跳转解决办法,子页面跳转父页面不跳转解决 (原)
  7. 使用vscode编译sass
  8. 三级菜单(低端版VS高端版)
  9. Cassandra创建第一个用户
  10. 记无法用被动方式登录远程linux主机的原因