MyBatis 是一个优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集的工作。MyBatis 的配置文件(通常是 mybatis-config.xml)和映射文件(通常是 XxxMapper.xml)中使用了多种标签来配置和定义 SQL 语句及其映射规则。以下是 MyBatis 常用的节点(标签)及其介绍:
MyBatis 配置文件(mybatis-config.xml)中的常用标签:
configuration
根标签,包含所有 MyBatis 的配置信息。
properties
用于引入外部属性文件,如数据库配置文件。
settings
用于设置 MyBatis 的运行时行为,如开启二级缓存、延迟加载等。
typeAliases
为 Java 类型设置别名,简化映射文件中的全限定类名。
typeHandlers
用于处理 Java 类型和数据库类型之间的转换。
objectFactory
MyBatis 创建结果对象的新实例时使用的工厂类。
plugins
MyBatis 允许你在已映射语句执行过程中的某一点进行拦截调用,通过插件来扩展 MyBatis 的功能。
environments
配置 MyBatis 的环境,如数据源和事务管理器。
environment
具体的环境配置,包含事务管理和数据源配置。
transactionManager
配置 MyBatis 的事务管理器,如 JDBC 或 MANAGED。
dataSource
配置数据源,如 UNPOOLED、POOLED 或 JNDI。
mappers
引入映射器文件,定义 SQL 语句和映射规则。
映射文件(XxxMapper.xml)中的常用标签:
mapper
映射文件的根标签,用于定义命名空间。
select
定义查询语句。
insert
定义插入语句。
update
定义更新语句。
delete
定义删除语句。
parameterMap
已废弃,用于定义参数映射,现在通常使用 #{} 或 ${} 占位符。
parameterType
定义输入参数的 Java 类型。
resultMap
定义结果集与 Java 对象之间的映射关系。
resultType
定义返回结果的 Java 类型。
sql
定义可重用的 SQL 代码片段。
include
引入定义的 SQL 代码片段。
choose
用于实现 if-else 逻辑。
when
与 choose 标签配合使用,表示当满足某个条件时的 SQL 片段。
otherwise
与 choose 标签配合使用,表示不满足 when 条件时的 SQL 片段。
if
用于动态 SQL,根据条件判断是否包含某段 SQL。
where
用于动态 SQL,自动处理 WHERE 关键字和 AND/OR。
set
用于动态 SQL,自动处理 SET 关键字和逗号。
foreach
用于构建动态 SQL 语句,通常用于批量操作。
bind
用于创建变量并绑定到当前 SQL 语句的作用域中。
这些标签为 MyBatis 提供了强大的 SQL 映射和配置能力,使得数据库的操作更加灵活和方便。通过合理使用这些标签,可以编写出简洁、高效且易于维护的数据库操作代码。