mybatis自动建表的实现方法

网友投稿 561 2022-11-15


mybatis自动建表的实现方法

1.添加ACTable依赖

com.gitee.sunchenbin.mybatis.actable

mybatis-enhance-actable

1.1.1.RELEASE

2.配置(在此需要注意配置的路径部分需要改成自己项目路径)

com.gitee.sunchenbin.mybatis.actable

mybatis-enhance-actable

1.1.1.RELEASE

3.添加配置类

package com.jpxx.clsh.autoconfig;

import com.alibaba.druid.pool.DruidDataSource;

import org.mybatis.spring.SqlSessionFactoryBean;

import org.springframework.beans.factory.annotation.Value;

import org.springframework.beans.factory.config.PropertiesFactoryBean;

import org.springframework.context.annotation.Bean;

import org.springframework.context.annotation.ComponentScan;

import org.springframework.context.annotation.Configuration;

import org.springframework.core.io.support.PathMatchingResourcePatternResolver;

import org.springframework.jdbc.datasource.DataSourceTransactionManager;

/**

* @ClassName TestConfig

* @Description

* @Author Administrator

* @Date 2020/11/2 0002 11:30

* @Version 1.0

*/

@Configuration

@ComponentScan(basePackages = {"com.gitee.sunchenbin.mybatis.actable.manager.*"})

public class DataSourceConfig{

//此处的路径按照yml或properties文件路径

@Value("${jpxx.datasource.druid.driverClassName}")

private String driver;

@Value("${jpxx.datasource.druid.url}")

private String url;

@Value("${jpxx.datasource.druid.username}")

private String username;

@Value("${jpxx.datasource.druid.password}")

private String password;

@Bean

public PropertiesFactoryBean configProperties() throws Exception{

PropertiesFactoryBean propertiesFactoryBean = new PropertiesFactoryBean();

PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();

propertiesFactoryBean.setLocations(resolver.getResources("classpath*:application.yml"));

return propertiesFactoryBean;

}

@Bean

public DruidDataSource dataSource() {

DruidDataSource dataSource = new DruidDataSource();

dataSource.setDriverClassName(driver);

dataSource.setUrl(url);

dataSource.setUsernahttp://me(username);

dataSource.setPassword(password);

dataSource.setMaxActive(30);

dataSource.setInitialSize(10);

dataSource.setValidationQuery("SELECT 1");

dataSource.setTestOnBorrow(true);

return dataSource;

}

@Bean

public DataSourceTransactionManager dataSourceTransactionManager() {

DataSourceTransactionManager dataSourceTransactionManager = new DataSourceTransactionManager();

dataSourceTransactionManager.setDataSource(dataSource());

return dataSourceTransactionManager;

}

@Bean

public SqlSessionFactoryBean sqlSessionFactory() throws Exception{

SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();

sqlSessionFactoryBean.setDataSource(dataSource());

PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();

sqlSessionFactoryBean.setMapperLocations(resolver.getResources("classpath*:com/gitee/sunchenbin/mybatis/actable/mapping/*/*.xml"));

sqlSessionFactoryBean.setTypeAliasesPackage("com.jpxx.clsh.entity.*");

return sqlSessionFactoFvOVcryBean;

}

}

package com.jpxx.clsh.autoconfig;

/**

* @ClassName MyBatisMapperScannerConfig

* @Description

* @Author Administrator

* @Date 2020/11/2 0002 10:15

* @Version 1.0

*/

import org.mybatis.spring.mapper.MapperScannerConfigurer;

import org.springframework.boot.autoconfigure.AutoConfigureAfter;

import org.springframework.context.annotation.Bean;

import org.springframework.context.annotation.Configuration;

@Configuration

@AutoConfigureAfter(DataSourceConfig.class)

public class MyBatisMapperScannerConfig {

@Bean

public MapperScannerConfigurer mapperScannerConfigurer() throws Exception{

MapperScannerConfigurer mapperScannerConfigurer = new MapperScannerConfigurer();

mapperScannerConfigurer.setBasePackage("com.jpxx.clsh.dao.*;com.gitee.sunchenbin.mybatis.actable.dao.*");

mapperScannerConfigurer.setSqlSessionFactoryBeanName("sqlSessionFactory");

return mapperScannerConfigurer;

}

}

4.实体类

package com.jpxx.clsh.entity;

import com.gitee.sunchenbin.mybatis.actable.annotation.Column;

import com.gitee.sunchenbin.mybatis.actable.annotation.Table;

import com.gitee.sunchenbin.mybatis.actable.constants.mysqlTypeConstant;

import lombok.Data;

/**

* @ClassName Test

* @Description

* @Author Administrator

* @Date 2020/10/30 0030 16:4FvOVc8

* @Version 1.0

*/

@Data

@Table(name = "aaaaaaaaaaaaaa")

public class Test {

@Column(name = "role_id", type = MySqlTypeConstant.INT, isNull = false,isKey = true, isAutoIncrement = true, comment = "自增id")

private Long id;

@Column(name = "name", type = MySqlTypeConstant.VARCHAR, isNull = false, length = 20, comment = "角色名字")

private String name;

@Column(name = "name_zh", type = MySqlTypeConstant.VARCHAR, isNull = true, length = 20, comment = "角色的中文名字")

private String name_zh;

}

运行日志


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Gson如何序列化内部类
下一篇:SpringBoot使用validation
相关文章

 发表评论

暂时没有评论,来抢沙发吧~