CRUD 操作和查询方法可以委托给 MyBatis。 本节介绍如何配置Spring Data JDBC以与MyBatis集成,以及要遵循哪些约定来移交查询的运行以及到库的映射。
配置
将 MyBatis 正确插入 Spring Data JDBC 的最简单方法是导入到应用程序配置中:MyBatisJdbcConfiguration
@Configuration
@EnableJdbcRepositories
@Import(MyBatisJdbcConfiguration.class)
class Application {
@Bean
SqlSessionFactoryBean sqlSessionFactoryBean() {
// Configure MyBatis here
}
}
正如你所看到的,你所需要声明的只是一个依赖于一个bean,最终是可用的。SqlSessionFactoryBean
MyBatisJdbcConfiguration
SqlSession
ApplicationContext
使用约定
对于 中的每个操作,Spring Data JDBC 都会运行多个语句。
如果应用程序上下文中存在 SqlSessionFactory
,则 Spring Data 会检查每个步骤是否提供语句。
如果找到一个,则使用该语句(包括其配置的到实体的映射)。CrudRepository
SessionFactory
语句的名称是通过将实体类型的完全限定名称与确定语句的类型连接起来构造的。
例如,如果要插入 的实例,Spring Data JDBC 将查找名为 的语句。Mapper.
String
org.example.User
org.example.UserMapper.insert
运行语句时,[] 的实例将作为参数传递,从而使语句可以使用各种参数。MyBatisContext
下表描述了可用的 MyBatis 语句:
名字 | 目的 | 可能触发此语句的 CrudRepository 方法 | 中可用的属性MyBatisContext |
---|---|---|---|
|
插入单个图元。这也适用于聚合根引用的实体。 |
|
|
|
更新单个实体。这也适用于聚合根引用的实体。 |
|
|
|
删除单个实体。 |
|
|
|
删除用作给定属性路径前缀的类型的任何聚合根引用的所有实体。 请注意,用于为语句名称添加前缀的类型是聚合根的名称,而不是要删除的实体的名称。 |
|
|
|
删除用作前缀的类型的所有聚合根 |
|
|
|
删除具有给定 propertyPath 的聚合根引用的所有实体 |
|
|
|
按 ID 选择聚合根 |
|
|
|
选择所有聚合根 |
|
|
|
按 ID 值选择一组聚合根 |
|
|
|
选择由另一个实体引用的一组实体。引用实体的类型用于前缀。引用的实体类型用作后缀。此方法已弃用。请改用 |
所有方法。如果未定义查询 |
|
|
选择由另一个实体通过属性路径引用的一组实体。 |
所有方法。 |
|
|
选择所有聚合根,排序 |
|
|
|
选择聚合根的页面,可以选择排序 |
|
|
|
计算用作前缀的类型的聚合根数 |
|
|
名字 | 目的 | 可能触发此语句的 CrudRepository 方法 | 中可用的属性MyBatisContext |
---|---|---|---|
|
插入单个图元。这也适用于聚合根引用的实体。 |
|
|
|
更新单个实体。这也适用于聚合根引用的实体。 |
|
|
|
删除单个实体。 |
|
|
|
删除用作给定属性路径前缀的类型的任何聚合根引用的所有实体。 请注意,用于为语句名称添加前缀的类型是聚合根的名称,而不是要删除的实体的名称。 |
|
|
|
删除用作前缀的类型的所有聚合根 |
|
|
|
删除具有给定 propertyPath 的聚合根引用的所有实体 |
|
|
|
按 ID 选择聚合根 |
|
|
|
选择所有聚合根 |
|
|
|
按 ID 值选择一组聚合根 |
|
|
|
选择由另一个实体引用的一组实体。引用实体的类型用于前缀。引用的实体类型用作后缀。此方法已弃用。请改用 |
所有方法。如果未定义查询 |
|
|
选择由另一个实体通过属性路径引用的一组实体。 |
所有方法。 |
|
|
选择所有聚合根,排序 |
|
|
|
选择聚合根的页面,可以选择排序 |
|
|
|
计算用作前缀的类型的聚合根数 |
|
|