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

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

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

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

  1. MyBatis学习 之 二、SQL语句映射文件(1)resultMap

    目录(?)[-] 二SQL语句映射文件1resultMap resultMap idresult constructor association联合 使用select实现联合 使用resultMap实 ...

  2. (转)MyBatis框架的学习(五)——一对一关联映射和一对多关联映射

    http://blog.csdn.net/yerenyuan_pku/article/details/71894172 在实际开发中我们不可能只是对单表进行操作,必然要操作多表,本文就来讲解多表操作中 ...

  3. Mybatis系列全解(八):Mybatis的9大动态SQL标签你知道几个?提前致女神!

    封面:洛小汐 作者:潘潘 2021年,仰望天空,脚踏实地. 这算是春节后首篇 Mybatis 文了~ 跨了个年感觉写了有半个世纪 ... 借着女神节 ヾ(◍°∇°◍)ノ゙ 提前祝男神女神们越靓越富越嗨 ...

  4. MyBatis学习 之 二、SQL语句映射文件(2)增删改查、参数、缓存

    目录(?)[-] 二SQL语句映射文件2增删改查参数缓存 select insert updatedelete sql parameters 基本类型参数 Java实体类型参数 Map参数 多参数的实 ...

  5. SSM框架之Mybatis(6)动态SQL

    Mybatis(6)动态SQL 1.动态SQL 出现原因:有些时候业务逻辑复杂时,我们的 SQL 是动态变化的,此时在前面的学习中我们的 SQL 就不能满足要求了 1.1.if标签 我们根据实体类的不 ...

  6. MyBatis学习总结_11_MyBatis动态Sql语句

    MyBatis中对数据库的操作,有时要带一些条件,因此动态SQL语句非常有必要,下面就主要来讲讲几个常用的动态SQL语句的语法 MyBatis中用于实现动态SQL的元素主要有: if choose(w ...

  7. MyBatis:学习笔记(4)——动态SQL

    MyBatis:学习笔记(4)——动态SQL

  8. Spring mybatis源码篇章-动态SQL节点源码深入

    通过阅读源码对实现机制进行了解有利于陶冶情操,承接前文Spring mybatis源码篇章-动态SQL基础语法以及原理 前话 前文描述到通过mybatis默认的解析驱动类org.apache.ibat ...

  9. MyBatis 实践 -动态SQL/关联查询

    MyBatis 实践 标签: Java与存储 动态SQL 动态SQL提供了对SQL语句的灵活操作,通过表达式进行判断,对SQL进行拼接/组装. if 对查询条件进行判断,如果输入参数不为空才进行查询条 ...

随机推荐

  1. [vue]data数据属性及ref获取dom

    data项的定义 this.$refs获取dom 获取不到数据 这样中转下才ok 小结: data里不能用this.$ref. 另外使用visjs时候 view-source:http://visjs ...

  2. Python爬虫常用模块安装

    安装:pip3 install requestspip3 install seleniumpip3 install bs4pip3 install pyquerypip3 install pymysq ...

  3. 项目发布脚本-nginx

    #!/bin/bash export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin clear printf &q ...

  4. Case when then esle end

    Case具有两种格式.简单Case函数和Case搜索函数. --简单Case函数 CASE sex ' THEN '男' ' THEN '女' ELSE '其他' END --Case搜索函数 ' T ...

  5. git cherry-pick 报错is a merge but no -m option was given

    gerrit上提示代码冲突的时候,我们首先会想到rebase下,不行的话就只能解决冲突了,最简单的做法是我的另一篇博客https://www.cnblogs.com/zndxall/p/9140813 ...

  6. SQL _ Create Procedure

    -- ================================================ -- Template generated from Template Explorer usi ...

  7. Css3动画属性总汇

    http://css3lib.alloyteam.com/uilib/animation/demo1/#cta Css3动画属性总汇 Stay hungry. Stay foolish. Attent ...

  8. MySQL--7MySQL自定义函数

    在函数体的内部可以书写多个sql语句,写多个sql语句的话就称为复合结构

  9. 软件测试常用Linux命令

    有些技能可以事半功倍,有些命运掌握在我们手中.熟练的掌握和使用这些命令可以提高工作效率,并且结合这些命令对测试过程中遇到的问题进行一些初步的定位. 1 目录与文件操作 1.1 ls(初级) 使用权限: ...

  10. 服务器非root安装gcc 4.8.5

    1.下载gcc-4.8.5: $ wget ftp://ftp.gnu.org/gnu/gcc/gcc-4.8.5/gcc-4.8.5.tar.gz 2.解压gcc: $ tar zxvf gcc-. ...