<transactionManager>与<datasource>元素

本文介绍了SQLMap中&lt;transactionManager&gt;元素的三种类型:JDBC、JTA和EXTERNAL,以及如何通过&lt;datasource&gt;元素设置数据源参数。这有助于理解SQLMap如何与不同类型的数据库进行交互并管理事务。

这里写图片描述


<transactionManager>元素

<transationManager>元素让您为SQL Map配置事务管理服务。属性type指定所使用的事务管理器类型。这个属性值可以是一个类名,也可以是一个别名。包含在框架的三个事务管理器分别是:JDBC,JTA和EXTERNAL。
 1. JDBC:通过常用的Connection commit()和rollback()方法,让JDBC管理事务。
 2. JTA:本事务管理器使用一个JTA全局事务,使SQL Map的事务包括在更大的事务范围内,这个更大的事务范围可能包括了其他的数据库和事务资源。这个配置需要一个UserTransaction属性,以便从JNDI获得一个UserTransaction。参见以下JNDI数据源的例子。
 3. EXTERNAL:这个配置可以让您自己管理事务。您仍然可以配置一个数据源,但事务不再作为框架生命周期的一部分被提交或回退。这意味着SQL Map外部应用的一部分必须自己管理事务。这个配置也可以用于没有事务管理的数据库(例如只读数据库)。
<datasource>元素
<datasource><transactionManager>的一部分,为SQL Map数据源设置了一系列参数。目前SQL Map架构只提供三个DataSource Factory,但您也可以添加自己的实现。下面详细地讨论DataSourceFactory的三个实现及其例子。

这里写图片描述

这里写图片描述

2. (单选题) MyBatis 中的 Mapper 接口是做什么用的? A 定义数据库表结构 B 定义 SQL 语句 C 定义事务管理 D 定义业务逻辑 3. (单选题) 在 MyBatis 中,哪个标签用于定义一条查询语句? A <select> B <insert> C <update> D <delete> 4. (单选题) MyBatis 支持的动态 SQL 元素不包括以下哪个? A <if> B <choose> C <when> D <for> 5. (单选题) MyBatis 中,哪个配置元素用于定义数据库连接信息? A <dataSource> B <transactionManager> C <environments> D <mappers> 6. (单选题) MyBatis 中,哪个配置元素用于定义结果映射? A <resultMap> B <parameterMap> C <sqlMap> D <mapper> 7. (单选题) MyBatis 中,哪个配置元素用于定义多个数据库环境? A <environments> B <dataSource> C <mappers> D <transactionManager> 8. (单选题) MyBatis 中,哪个配置元素用于定义 MyBatis 映射文件的位置? A <mappers> B <environments> C <dataSource> D <transactionManager> 9. (单选题) MyBatis 支持的结果集类型不包括以下哪个? A list B map C xml D array 10. (单选题) MyBatis 中,哪个配置元素用于定义 MyBatis 插件? A <plugins> B <environments> C <dataSource> D <mappers> 11. (单选题) MyBatis 支持的日志实现不包括以下哪个? A SLF4J B LOG4J C LOG4J2 D JULL 12. (单选题) MyBatis 中,哪个配置元素用于定义 MyBatis 的日志实现? A <settings> B <environments> C <dataSource> D <logImpl> 13. (单选题) MyBatis 中,哪个配置元素用于定义 MyBatis 属性文件的位置? A <properties> B <propertyFiles> C <configFile> D <settings> 14. (单选题) PageHelper 分页插件是通过什么机制来实现分页的? A 拦截器(Interceptor) B AOP C JDBC D XML 15. (单选题) MyBatisX 是一款基于哪个IDE的快速开发插件? A Eclipse B IntelliJ IDEA C NetBeans D Visual Studio Code 16. (单选题) 在 MyBatis 中,使用分页插件后,以下哪个操作会导致分页不生效? A 在查询之前调用 PageHelper.startPage(pageNum, pageSize); B 在查询之后调用 PageHelper.startPage(pageNum, pageSize); C 使用 PageInfo 对象封装查询结果 D 使用 Page 对象封装查询结果 17. (单选题) MyBatisX 插件的安装步骤中,以下哪个步骤不是必需的? A 在 IDEA 中安装 MybatisX 插件 B 在 pom.xml 文件中引入 MyBatis-Plus 依赖 C 在 application.yml 中配置数据库连接 D 在数据库中创建视图 18. (单选题) 在MyBatis的动态SQL中,<if> 标签的作用是什么? A 仅当指定条件为真时执行内部的SQL语句 B 无条件地执行内部的SQL语句 C 循环执行内部的SQL语句 D 将多个SQL语句合并为一个 19. (单选题) MyBatis中 <foreach> 标签的 collection 属性是用来遍历哪个类型的参数? A 单个值 B 数组 C 集合 D 映射 20. (单选题) 在MyBatis中,<set> 标签用于构建哪个SQL语句的部分? A SELECT B INSERT C UPDATE D DELETE 21. (单选题) 在MyBatis中,如果要实现多对一查询,通常使用哪个标签来定义结果映射? A <collection> B <association> C <result> D <sql> 22. (单选题) 当使用MyBatis进行一对多查询时,以下哪个标签用于定义结果映射中的集合属性? A <association> B <collection> C <result> D <sql> 23. (单选题) 在MyBatis中,如果要通过嵌套查询实现多表关联查询,通常需要在哪个标签中定义子查询? A <association> B <collection> C <resultMap> D <select> 24. (单选题) 在MyBatis中,如果要实现分页关联查询,通常会使用哪个插件来辅助实现? A PageHelper B MyBatisX C MyBatis-Spring D MyBatis-Plus 25. (单选题) MyBatis 允许在 XML 映射文件中使用哪种标签来包含其他 SQL 片段? A <include> B <import> C <file> D <sql>
10-18
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <!--6.编写核心配置文件--> <!--configuration 配置--> <configuration> <!--引入配置文件--> <properties resource="jdbc.properties"></properties> <properties resource=".properties"></properties> <!-- 2. 全局设置:开启驼峰命名自动转换(brand_name → brandName) --> <settings> <setting name="mapUnderscoreToCamelCase" value="true"/> </settings> <typeAliases> <!-- 起别名 --> <!--name属性的值是实体类所在包 映射文件中的resultType 可以不用包名 不区分大小写 实体类名的小写--> <package name="com.itgaohe.pojo"/> <!-- 扫的的是实体类的包 对包下的所有实体类起别名--> </typeAliases> <!--environments 操作环境--> <environments default="development"> <!--environment 单个操作环境--> <environment id="development"> <!--transactionManager 事务管理类型 JDBC--> <transactionManager type="JDBC"></transactionManager> <!--dataSource 数据库连接池--> <dataSource type="POOLED"> <!--property 配置信息--> <!-- <property name="driver" value="com.mysql.cj.jdbc.Driver"/>--> <!-- <property name="url" value="jdbc:mysql:///mybatis?characterEncoding=utf-8&serverTimezone=UTC"/>--> <!-- <property name="username" value="root"/>--> <!-- <property name="password" value="123456"/>--> <!--识别配置文件中的内容--> <property name="driver" value="${driver}"/> <property name="url" value="${url}"/> <property name="username" value="${username}"/> <property name="password" value="${password}"/> </dataSource> </environment> </environments> <!--mappers 将映射文件加载到配置文件中--> <mappers> <!-- <mapper resource="com/itgaohe/mapper/UserMapper.xml"></mapper>--> <!-- 代理开发: 包扫描 自动加载 指定包下的所有Mapper 接口和对应的映射文件--> <package name="com.itgaohe.mapper"/> </mappers> </configuration>
最新发布
11-29
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值