1、此项目用于基于spring mybatis自动根据实体类更新表结构,包括自动删除表、删除字段、修改字段,增加字段
2、也可以实现了对tkmapper的支持
使用方法
1、mybatis设置
{color:#14892c}{color}
2、SqlSessionFactory配置
xml方式
{color:#14892c}classpath*:mapper*.xml
注解方式
@Bean("sqlSessionFactoryBean")
public SqlSessionFactory sqlSessionFactoryBean(DataSource dataSource) throws Exception {
SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
sqlSessionFactoryBean.setDataSource(dataSource);
PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
sqlSessionFactoryBean.setConfigLocation(resolver.getResource("classpath:mybatis-setting.xml"));
{color:#14892c}Resource[] resources = resolver.getResources("classpath*:mapper/*Mapper.xml");
sqlSessionFactoryBean.setMapperLocations(resources);{color}
sqlSessionFactoryBean.setTypeHandlersPackage("com.xxx.xxx.*.model,{color:#14892c}com.github.gonglb.tools.autoupdatetable.model{color}");
return sqlSessionFactoryBean.getObject();
}
2、MapperScannerConfigurer配置
xml方式
mappers=tk.mybatis.mapper.common.Mapper,tk.mybatis.mapper.common.special.InsertListMapper
{color:#14892c}{color}
{color:#14892c}{color}
注解方式
@Bean
public MapperScannerConfigurer getMapperScannerConfigurer() throws Exception {
AutoTableTKMapperScannerConfigurer autoTableTKMapperScannerConfigurer = new AutoTableTKMapperScannerConfigurer();
autoTableTKMapperScannerConfigurer.setBasePackage("com.xxx.xxx.*.mapper");
autoTableTKMapperScannerConfigurer.setSqlSessionFactoryBeanName("sqlSessionFactoryBean");
Properties properties = new Properties();
properties.setProperty("mappers", "tk.mybatis.mapper.common.Mapper,tk.mybatis.mapper.common.special.InsertListMapper");
autoTableTKMapperScannerConfigurer.setProperties(properties);
{color:#14892c}autoTableTKMapperScannerConfigurer.setPacks("com.xxx.xxx.test.model");
autoTableTKMapperScannerConfigurer.setTableAuto("update");{color}
return autoTableTKMapperScannerConfigurer;
}
3、model配置方式
import org.apache.ibatis.type.JdbcType;
import com.github.gonglb.tools.autoupdatetable.common.ColumnType;
@Table(name = "t_test")
public classTest{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "test_id",nullable = false,unique = false,length = 11,columnDefinition = "主键")
@ColumnType(jdbcType = JdbcType.INTEGER)
private Integer id;
@Column(name = "test_name",nullable = true,unique = false,length = 64,columnDefinition = "注释",table="默认值")
@ColumnType(jdbcType = JdbcType.VARCHAR)
private String name;
}
4、注意事项
a、该项目根据 mybatis-enhance-actable-0.0.1 开源项目的思路改编而来
b、该项目会自动删除更新表结构,根据实际情况使用