MyBatis 的强大特性之一便是它的动态 SQL。如果你有使用 JDBC 或其他类似框架的经验,你就能体会到根据不同条件拼接 SQL 语句有多么痛苦。拼接的时候要确保不能忘了必要的空格,还要注意省掉列名列表最后的逗号。利用动态 SQL 这一特性可以彻底摆脱这种痛苦。
MyBatis Cache
MyBatis对缓存提供了支持,默认情况下只开启了一级缓存,要开启二级缓存需要进行配置。为了验证这个过程,我们创建log4j.properties:
1 | log4j.rootLogger=DEBUG , stdout |
MyBatis级联
MyBatis中的级联分为3种:association,collection和discriminator:
1.association
:代表一对一关系,比如学生和学生证是一对一关系。
2.collection
:代表一对多关系,比如学生和课程是一对多关系,一个学生可以有多个课程。
3.discriminator
:鉴别器,它可以根据实际选择采用哪个类作为实例,允许你根据特定的条件去关联不同的结果集。
为了学习这些东东,设计一个模型关系:
MyBatis映射器
映射器的配置:
元素名称 | 描述 |
select | 查询语句 |
insert | 插入语句 |
update | 更新语句 |
delete | 删除语句 |
sql | 允许定义一部分SQL,然后各个地方引用 |
resultMap | 用于定义结果集 |
cache | 给定命名控件的缓存配置 |
cache-ref | 其它命名控件缓存配置的引用 |
MyBatis配置文件
MyBatis配置文件mybatis-config.xml包含:
■ properties:用于配置属性信息。
■ settings:用于配置MyBatis的运行时方式。
■ typeAliases:配置类型别名,可以在xml中用别名取代全限定名。
■ typeHandlers:配置类型处理器。
MyBatis typeHandler
MyBatis在设置参数或者从结果集中获取参数的时候,都会用到注册了的typeHandler进行处理。typeHandler的作用为将参数从javaType转为jdbcType,或者从数据库取出结果时把jdbcType转为javaType。