@Table 注解
表名注解
属性说明
| 属性 | 是否可空 | 默认值 | 说明 |
|---|---|---|---|
| value | 是 | 数据库对应的table名称 | |
| schema | 是 | 数据库对应的schema名称 | |
| columnNameRule | 是 | columnNameRule.IGNORE | 指定列名规则,默认忽略;如果指定,则对于没有配置列名的,会按这个处理 |
| databaseCaseRule | 是 | DatabaseCaseRule.DEFAULT | 数据库大小写规则,全局设置大小写规则:XbatisGlobalConfig.setDatabaseCaseRule(DatabaseCaseRule.UPPERCASE); 或 XbatisGlobalConfig.setDatabaseCaseRule(DbType.H2,DatabaseCaseRule.UPPERCASE); |
使用示例
java
@Table
public class SysUser {
}java
@Table("sys_user")
public class SysUser {
}表名符合驼峰模式的,无需填写 表名
表列设置全大/小写
1:注解方式设置表列全大/小写
java
@Table(databaseCaseRule=DatabaseCaseRule.UPPERCASE)
public class SysUser {
}2:不同数据库设置不同表列全大/小写
启动时设置全大/小写规则
java
XbatisGlobalConfig.setDatabaseCaseRule(DbType.H2,DatabaseCaseRule.UPPERCASE);3:全局设置不同表列全大/小写
启动时设置全大/小写规则
java
XbatisGlobalConfig.setDatabaseCaseRule(DatabaseCaseRule.UPPERCASE);4:表名/schema 动态设置(非分表行为)
用于不同环境“表名/schema” 不一样的情况;有些项目有这种需求;
java
@Table("{SYS_USER}")
public class SysUser {
}java
@Table(schema="{SCHEMA}")
public class SysUser {
}配置动态值,需求在启动阶段
java
@Configuration
public class XbatisConfig {
@Bean
public ConfigurationCustomizer configurationCustomizer(@Value("${db.sys_user}") String sysUserTableName, @Value("${db.schema}") String schema) {
return (configuration) -> {
XbatisGlobalConfig.setDynamicValue("{SYS_USER}", (clazz,type) -> {
return sysUserTableName;
});
XbatisGlobalConfig.setDynamicValue("{SCHEMA}", (clazz,type) -> {
return schema;
});
}
}
}