Skip to main content

3.5 Hasor Integration

Hint

This article is generated by AI translation.

What is Hasor

Hasor is a Spring-like project offering IoC/AOP and web capabilities; smaller than Spring, richer than Guice.

Features

  • Auto-configured data sources
  • Annotation-based transactions
  • Mapper interface injection
  • Multiple data sources

How to use

First add the dependency, current version: 6.4.0

Maven Dependencies
<dependency>
<groupId>net.hasor</groupId>
<artifactId>dbvisitor-hasor</artifactId>
<version>latest version</version>
</dependency>
Use HikariCP
<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
<version>4.0.3</version>
</dependency>
Configuration
dbvisitor.jdbc-ds=com.zaxxer.hikari.HikariDataSource
dbvisitor.jdbc-ds.jdbc-url=jdbc:mysql://127.0.0.1:13306/devtester?allowMultiQueries=true
dbvisitor.jdbc-ds.username=root
dbvisitor.jdbc-ds.password=123456
dbvisitor.jdbc-ds.minimum-idle=5
dbvisitor.jdbc-ds.maximum-pool-size=12
dbvisitor.jdbc-ds.max-lifetime=1200000
dbvisitor.jdbc-ds.auto-commit=true
dbvisitor.jdbc-ds.connection-timeout=20000
dbvisitor.mapper-locations=classpath:dbvisitor/mapper/*.xml
dbvisitor.mapper-packages=net.hasor.dbvisitor.test.dao
Inject a Mapper
public class ServiceTest {
@Inject
private UserMapper userMapper;
...
}
Start Hasor
// Initialize Hasor and load the DbVisitorModule
AppContext appContext = Hasor.create().mainSettingWith("jdbc.properties").build(binder -> {
binder.installModule(new DbVisitorModule());
});

// Enjoy
ServiceTest service = appContext.getInstance(ServiceTest.class);
...

Registered types

  • JdbcOperations interface, implemented by JdbcTemplate
  • LambdaOperations interface, implemented by LambdaTemplate
  • TransactionManager interface for programmatic transactions
  • TransactionTemplate interface for template transactions
  • Configuration
  • Session
  • Custom Mapper interfaces

Configuration reference

KeyDescription
dbvisitor.mapper-locations可选 Locations of Mapper XML files; default dbvisitor/mapper/*.xml
dbvisitor.mapper-packages可选 Packages to scan for Mapper interfaces; separate multiple with ,
dbvisitor.mapper-disabled可选 true/false to disable Mapper interfaces discovered via dbvisitor.mapper-packages; default false. Set true if conflicts arise.
dbvisitor.marker-annotation可选 Annotation that marks an interface as a Mapper; default net.hasor.dbvisitor.mapper.MapperDef
dbvisitor.marker-interface可选 Interface that marks an interface as a Mapper; default net.hasor.dbvisitor.mapper.Mapper
dbvisitor.auto-mapping可选 Automatically map all fields to columns; true = auto, false = require @Column
dbvisitor.camel-case可选 Convert table/column names using camel-case to underscore
dbvisitor.use-delimited可选 Force identifier quoting for table/column/index names (e.g., when names are keywords); default false
dbvisitor.case-insensitive可选 Case-insensitive table/column names; default true
dbvisitor.ignore-nonexist-statement可选 Ignore missing mappings when binding Mapper methods to XML; default false (throws)
dbvisitor.dialect可选 Default database dialect