MyBatis-Plus自动维护DDL
MyBatis-Plus 提供了一个自动维护表结构的功能,可以在启动时自动检查数据库表结构,并根据实体类的定义来自动创建或更新表结构。
要启用这个功能,你需要做以下几步:
- 在你的实体类上使用
@TableName
注解指定表名。 - 确保你的实体类属性上有正确的注解,如
@TableField
来指定列名和字段类型。 - 在 MyBatis-Plus 的配置中开启自动维护功能。
以下是一个简单的实体类示例和配置开启自动维护的代码:
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.IdType;
@TableName("example_table")
public class ExampleEntity {
@TableId(value = "id", type = IdType.AUTO)
private Long id;
@TableField("name")
private String name;
// 省略其他属性和getter/setter方法
}
在 MyBatis-Plus 配置中开启自动维护:
import com.baomidou.mybatisplus.core.incrementer.IdentifierGenerator;
import com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class MyBatisPlusConfig {
@Bean
public MybatisSqlSessionFactoryBean sqlSessionFactory(DataSource dataSource) {
MybatisSqlSessionFactoryBean sqlSessionFactory = new MybatisSqlSessionFactoryBean();
sqlSessionFactory.setDataSource(dataSource);
// 设置自动维护DDL
sqlSessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mapper/*.xml"));
GlobalConfig globalConfig = new GlobalConfig();
GlobalConfig.DbConfig dbConfig = new GlobalConfig.DbConfig();
dbConfig.setTableFieldStrategy(new TableFieldStrategy());
dbConfig.setTableNameStrategy(new TableNameStrategy());
globalConfig.setDbConfig(dbConfig);
sqlSessionFactory.setGlobalConfig(globalConfig);
return sqlSessionFactory;
}
}
在上述配置中,TableFieldStrategy
和 TableNameStrategy
是 MyBatis-Plus 提供的自动维护类,用于根据实体类注解来更新表结构。
注意:自动维护DDL可能会导致数据丢失,因此在生产环境中需谨慎使用。在使用前,请确保已经有完整的数据备份。
评论已关闭