MyBatis 对存储过程提供了调用功能,并且支持对游标数据的转化功能。
MyBatis 对存储过程提供了调用功能,并且支持对游标数据的转化功能。
MyBatis:typeHandler类型处理器及在映射中使用枚举
TypeHandler 即类型处理器,作用是将 Java 数据类型参数转成数据库的数据类型,或取出数据库数据转成 Java 数据类型。
MyBatis 为 TypeHandler 提供了系统定义,也支持用户自定义,系统定义就可以实现大部分功能了。如果用户自定义 TypeHandler ,则需要小心谨慎。例如自定义 TypeHandler 实现枚举转换。
Mapper 通过类名和方法名就可以匹配到配置的SQL。
Mapper 执行的过程是通过 Executor
,StatementHandler
,ParameterHandler
和 ResultHandler
来完成数据库操作和结果返回的。
SqlSession 是一个接口,它本身并不复杂。构建 SqlSessionFactory 就可以拿到 SqlSession。SqlSession 提供了查询,插入,更新,删除的方法,在旧版本 MyBatis 或 iBatis 中常常使用这些接口方法,而在新版的 MyBatis 中建议使用 Mapper。
SqlSession 内部实现相当复杂,是整个 MyBatis 最难理解的部分。
SqlSessionFactory 是 MyBatis 的核心类,从这类名可以看出这是个 SqlSession 工厂类,其最重要的功能就是提供创建 MyBatis 的核心接口 SqlSession,所以需要先创建 SqlSessionFactory,为此需要提供配置文件和相关参数。
MyBatis 采用构造模式去创建 SqlSessionFactory,可以通过 SqlSessionFactoryBuild 去创建。构建分两步。
最近做报表统计,对日期时间范围查找的比较多,经常会遇到,也有些之前涉及相关的零散笔记,现整理如下。
MyBatis 在接收日期时间参数进行日期时间范围查询时,有些需要注意的地方,例如日期时间参数的数据类型可能是Date
或String
类型,或传参与数据库存储的日期时间格式并不一致等情况。
此情况更多与 SQL 的字符串拼接或日期时间格式转换有关。
整理历史项目,Mybatis 配置文件及整合Spring,主要配置记录。只做参考,实际开发已不使用此配置。
MyBatis 的强大特性之一便是它的动态 SQL,Mybatis 在对 SQL 语句进行预编译之前,会对 SQL 进行动态解析,解析为一个 BoundSql 对象,同时对动态 SQL 进行处理。
动态 SQL 主要通过OGNL
表达式实现 SQL 可以动态判断和选择参数。
实现项目开发中,存在一对一
,一对多
,多对多
的映射关系,Mybatis对这些映射关系提供了完全的支持。
MyBatis:配置文件(mybatis-config.xml)示例
Mybatis本置文件mybatis-config.xml