MyBatis的核心对象
SqlSessionFactory(主要作用:创建SqlSession)
SqlSessionFactory简介:
-
SqlSessionFactory是MyBatis框架中的重要对象,是单个数据库映射关系经过编译后的内存映像
创建SqlSessionFactory:
创建SqlSessionFactorySqlSession(主要作用:执行持久化操作)
SqlSession简介
-
SqlSession是MyBatis框架中的重要对象,它是应用程序与持久化层之间执行交互操作的一个单线程对象
SqlSession中的方法:
-
1、查询方法:
parameter:传参数
RowsBounds:做分页查询
ResultHandler:做复杂结果集的处理对象(用于多表查询)
查询方法 -
2、插入、更新、删除方法:
插入、更新、删除方法 -
3、其他方法
其他方法
使用工具类创建SqlSession
配置文件
主要元素介绍
-
在MyBatis框架的核心配置文件中:配置文件的根元素:<configuration>元素,其他元素都要在<configuration>元素内配置
主要元素
properties元素
- <properties>是一个配置属性的元素,该元素通常用来将内部的配置外在化,即通过外部的配置来动态替换内部定义的属性。如:数据库的连接等属性,就可以通过典型的Java属性文件中的配置来替换
编写db.properties
db.propertiessettings元素
- <settings>元素主要用于改变MyBatis运行时的行为,如:开启二级缓存、开启延迟加载(通常不需要开发人员去配置,了解即可)
typeAliases元素
- <typeAliases>元素用于为配置文件中的Java类型设置一个简短的名字,即设置别名。别名的设置与xml配置相关,其使用的意义在于减少全限定类名的冗余
- 若程序中使用了注解,则别名为其注解的值
1.使用<typeAliases>元素配置别名的方法: 使用<typeAliases>元素配置别名的方法
2.当POJO类过多时,可以通过自动扫描包的形式自定义别名: 通过自动扫描包的形式自定义别名
类型别名typeHandler元素
- typeHandler作用:将预处理语句中传入的参数从javaType(Java类型)转为jdbcType(JDBC类型),或者从数据库取出结果时jdbcType转为javaType
- <typeHandler>元素可在配置文件中注册自定义的类型处理器,使用方法有2种,如下:
1.注册一个类的类型处理器
注册一个类的类型处理器2.注册一个包中所有的类型处理器
.注册一个包中所有的类型处理器objectFactory元素(作用:实例化目标类)
- objectFactory既可以通过默认构造方法实例化(通常使用),也可以在参数映射存在的时候通过参数构造方法来实例化。
- 大部分场景下都不用配置和修改默认的objectFactory,若想覆盖objectFactory的默认行为,可通过自定义objectFactory来实现,如下:
1.自定义一个对象工厂
自定义一个对象工厂2.在配置文件中使用<objectFactory>元素配置自定义的objectFactory
自定义配置plugins元素(作用:配置用户所开发的插件)
- MyBatis允许在已映射语句执行过程中的某一点进行拦截调用,这种拦截调用是通过插件来实现的。
environments元素(作用:对环境进行配置)
-
MyBatis的环境配置实际就是数据源的配置,可通过<environments>元素配置多种数据源,即配置多种数据库
transactionManager:事务的管理
dataSource:数据源
使用<environments>进行环境配置示例
事务管理器的配置
- 在MyBatis中,可配置2种类型的事务管理器:
- (1)JDBC:此配置直接使用JDBC的提交和回滚设置,它依赖于数据源得到的连接来管理事务的作用域
- (2)MANAGED:此配置从来不提交/回滚一个连接,而是让容器来管理事务的整个生命周期。默认情况下,它会关闭连接,但一些容器并不希望这样,为此用closeConnection属性设置为false来阻止它默认的关闭行为。
数据源的配置
-
(1)UNPOOLED
配置此数据源类型后,在每次被请求时会打开/关闭连接。对没有性能要求的简单应用程序是个好的选择。在使用前,需要配置5种属性:
属性 - (2)POOLED
此数据源利用“池”的概念,将JDBC连接对象组织起来,避免了在创建新的连接实例时所需要初始化和认证的时间。此方式使得并发web应用可以快速的响应请求,是当前流行的处理方式。在使用时,可配置更多的属性
属性 -
(3)JNDI
可在EJB/应用服务器等容器中使用。容器可以集中/在外部配置数据源,然后放置一个JNDI上下文的引用。在使用时,需要配置2个属性
属性
mappers元素(作用:指定MyBatis映射文件的位置)
- 一般通过4种方法引入映射器文件
1.使用类路径引入
使用类路径引入2.使用本地径引入
使用本地径引入3.使用接口类径引入
使用接口类径引入4.使用包类径引入
使用包类径引入映射文件
主要元素介绍
-
<mapper>元素是映射文件的根元素,其他元素为子元素
主要元素
select元素(映射查询语句)
-
select可以帮助我们从数据库中读取出数据,并组装数据给开发人员
select元素 -
<select>元素的常用属性
<select>元素常用属性
insert元素(映射插入语句)
-
在执行完元素中定义的SQL语句后,会返回一个表示插入记录数的整数
insert元素示例
insert中特有属性 - 执行插入操作后,需要返回插入成功的数据生成主键值,通过上面所述的3个属性实现
-
(1)对于支持主键自增的数据库(如MySQL),可通过如下配置实现
支持主键自增
-
-
(2)对于不支持主键自增的数据库(如Oracle),可通过如下配置实现
不支持主键自增
update元素和delete元素
常用属性使用示例
网友评论