MyBatis Integration
CRUD 操作和查询方法可以委托给 MyBatis。本节介绍如何配置 Spring Data JDBC 集成到 MyBatis 中,以及遵循哪些约定来移交查询的运行以及到库的映射。
Configuration
将 MyBatis 正确插入 Spring Data JDBC 的最简单方法是将 MyBatisJdbcConfiguration
导入您的应用程序配置:
@Configuration
@EnableJdbcRepositories
@Import(MyBatisJdbcConfiguration.class)
class Application {
@Bean
SqlSessionFactoryBean sqlSessionFactoryBean() {
// Configure MyBatis here
}
}
如你所见,你只需要声明一个 SqlSessionFactoryBean
,因为 MyBatisJdbcConfiguration
依靠最终在 ApplicationContext
中有 SqlSession
bean 可用。
Usage conventions
对于 CrudRepository
中的每个操作,Spring Data JDBC 都会运行多条语句。如果应用程序上下文中存在 link:https://github.com/mybatis/mybatis-3/blob/master/src/main/java/org/apache/ibatis/session/SqlSessionFactory.java[SqlSessionFactory
,则对于每个步骤,Spring Data 都会检查 SessionFactory
是否提供语句。如果找到一个,则将使用该语句(包括它已配置的到实体的映射)。
通过将实体类型的完全限定名称与 Mapper.
连接,以及一个确定语句类型的 String
,来构造语句的名称。例如,如果要插入 org.example.User
的一个实例,Spring Data JDBC 会寻找名为 org.example.UserMapper.insert
的语句。
运行语句时,[MyBatisContext
] 的实例将作为参数传递,这会让语句可以使用各个参数。
下表描述了可用的 MyBatis 语句:
Name | Purpose | 可能触发此语句的 CrudRepository 方法 | MyBatisContext 中可获取的属性 |
---|---|---|---|
|
插入一个实体。这也适用于聚合根引用的实体。 |
|
|
|
更新一个实体。这也适用于聚合根引用的实体。 |
|
|
|
Deletes a single entity. |
|
|
|
删除前缀与给定的属性路径一起用作类型的聚合根引用的所有实体。请注意,用于标记语句名称的类型是聚合根的名称,而不是要删除的实体的名称。 |
|
|
|
删除用作前缀的类型的聚合根。 |
|
|
|
删除具有给定 propertyPath 的聚合根引用的所有实体。 |
|
|
|
按 ID 选择一个聚合根。 |
|
|
|
Select all aggregate roots |
|
|
|
按 ID 值选择一组聚合根。 |
|
|
|
选择由另一实体引用的实体集。引用实体的类型用于前缀。引用实体类型用作后缀。This method is deprecated. Use |
所有 |
|
|
通过属性路径选择另一实体引用的实体集。 |
All |
|
|
选择所有聚合根,并进行排序。 |
|
|
|
选择一页聚合根,可选择进行排序。 |
|
|
|
统计用作前缀的类型的聚合根数。 |
|
|