Skip to content

@Table 注解

表名注解

属性说明

属性是否可空默认值说明
value数据库对应的table名称
schema数据库对应的schema名称
columnNameRulecolumnNameRule.IGNORE指定列名规则,默认忽略;如果指定,则对于没有配置列名的,会按这个处理
databaseCaseRuleDatabaseCaseRule.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;
            });
        }
    }
}