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