跳到主要内容

与 SpringBoot 集成

通过 dbvisitor-spring-starter 工具包可以更加便捷的在 Spring Boot 中使用 dbVisitor ORM 工具。 Spring Boot 工程需要引入如下依赖包:

<dependency>
<groupId>net.hasor</groupId>
<artifactId>dbvisitor-spring-starter</artifactId>
<version>5.4.1</version>
</dependency>

基于 application.properties 配置文件

使用 application.properties 属性文件方式后就无需配置 @MapperScan 注解,它们的作用是相同的。

基于 application.properties 配置文件的 Demo 工程

# Spring JDBC 数据源配置
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/devtester
spring.datasource.username=root
spring.datasource.password=123456
# 必选
dbvisitor.mapper-packages=com.example.demo.dao
dbvisitor.mapper-locations=classpath:dbvisitor/mapper/*.xml

dbVisitor 配置项说明

属性名描述
dbvisitor.mapper-locations可选,要扫描加载的 Mapper 映射文件所在路径,默认值为 classpath*:/dbvisitor/mapper/**/*.xml,如果有多个可以通过一下任意一个字符进行分割 ,; \t\n
dbvisitor.mapper-packages可选,要扫描加载的 Mapper 接口定义所在的包名,如果有多个包使用 , 号分割
dbvisitor.mapper-disabled可选,使用 true/false 表示是否禁用 dbvisitor.mapper-packages 扫描到的 Mapper 接口。
默认值为 false 当与某些框架合用同一个 mapper 文件时如果遇到冲突可考虑设置为 true
dbvisitor.marker-annotation可选,当 dbvisitor.mapper-packages 扫描到的 Mapper 接口身上标有 某个特定类型的注解时才会被认作 Mapper 接口类。默认为:net.hasor.dbvisitor.dal.repository.DalMapper
dbvisitor.marker-interface可选,当 dbvisitor.mapper-packages 扫描到的 Mapper 接口实现了某个特定接口时才会被认作 Mapper 接口类。默认为:net.hasor.dbvisitor.dal.mapper.Mapper
dbvisitor.mapper-scope可选,Mapper Bean 所处的 Spring 作用域,默认作用域通过 AbstractBeanDefinition.SCOPE_DEFAULT 确定。
建议设置为 singleton,dbVisitor 5.1.0 版本之前默认值被设置为 singleton,而非跟随 spring 配置
dbvisitor.auto-mapping可选,是否将类型下的所有字段都自动和数据库中的列进行映射匹配,true 表示自动。false 表示必须通过 @Column 注解声明
dbvisitor.camel-case可选,表名和属性名,根据驼峰规则转换为带有下划线的表名和列名
dbvisitor.case-insensitive可选,强制在生成 表名/列名/索引名 时候增加标识符限定,例如:通过设置该属性来解决列名为关键字的问题。默认是 false 不设置
dbvisitor.use-delimited可选,是否对表名列名敏感,默认 true 不敏感
dbvisitor.dialect可选,默认使用的数据库方言
dbvisitor.mapper-factory-bean可选,创建 Mapper 的工厂类,默认为 net.hasor.dbvisitor.spring.support.DalMapperBean
dbvisitor.mapper-lazy-initialization可选,Mapper Bean 的 lazyInit 属性,默认为 false
dbvisitor.mapper-name-generator可选,用于自定义生成 mapper bean 名字的生成器类名,默认为:空。需要实现 org.springframework.beans.factory.support.BeanNameGenerator 接口
dbvisitor.ref-session-bean可选,用于自定义 Mapper Bean 所使用的 DalSession Bean 的名字。
dbvisitor.named-type-registry不支持该配置
dbvisitor.named-rule-Registry不支持该配置

补充说明

  • 对于 @DalMapper 注解只可以用于注释另一个注释,因此可以使用 @RefMapper@SimpleMapper 来代替。细节请参阅 注解化 Mapper
  • dbvisitor.marker-annotationdbvisitor.marker-interface 两个属性配置满足其一即可
  • 一个 Mapper 接口可以继承下面两个接口其一
    • net.hasor.dbvisitor.dal.mapper.Mapper (标记性接口)
    • net.hasor.dbvisitor.dal.mapper.BaseMapper (有通用方法)

基于注解化

通过 @MapperScan 注解配置 Mapper 接口和对应的 Mapper File。

提示

注解配置优先级高于配置文件(推荐 "application.properties" 方式,配置更全面)

@MapperScan(
basePackages = "com.example.demo.dao",
mapperLocations = "classpath:dbvisitor/mapper/*.xml")
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}

@MapperScan 注解属性详解

若要达到 dbvisitor.mapper-disabled 配置的效果请选用 @MappingScan 注解

属性名描述
valuebasePackagesbasePackageClasses参考 dbvisitor.mapper-packages 配置
mapperLocations参考 dbvisitor.mapper-locations 配置
factoryBean参考 dbvisitor.mapper-factory-bean 配置
defaultScope参考 dbvisitor.mapper-scope 配置
lazyInitialization参考 dbvisitor.mapper-lazy-initialization 配置
nameGenerator参考 dbvisitor.mapper-name-generator 配置
annotationClass参考 dbvisitor.marker-annotation 配置
markerInterface参考 dbvisitor.marker-interface 配置
dalSessionRef参考 ref-session-bean 配置

@MappingScan 注解属性详解(该注解仅仅扫描加载 Mapper 文件不创建对应的 Mapper 接口对象)

属性名描述
mapperLocations参考 dbvisitor.mapper-locations 配置
dalSessionRef参考 ref-session-bean 配置