• A.CTable 自动创建数据表


    1.添加依赖

    <!--  A.CTable 自动创建数据表  -->
     <dependency>
    	<groupId>com.gitee.sunchenbin.mybatis.actable</groupId>
    	<artifactId>mybatis-enhance-actable</artifactId>
    	 <version>1.0.4</version>
    </dependency>
    

    2.配置application.properties

    mybatis.table.auto=update
    mybatis.model.pack=com.boot.entity
    mybatis.database.type=mysql

    2.创建config

    MybatisEntity 
    /**  
    * <p>Title: MybatisEntity.java</p>  
    * <p>Description: </p>   
    * @author zhouyue 
    * @date 2018年11月29日  
    * @version 1.0  
    */  
    package com.boot.entity;
    
    /**  
    * <p>Title: MybatisEntity</p>  
    * <p>Description: </p>  
    * @author zhouyue 
    * @date 2018年11月29日  
    */
    
    
    import java.sql.Date;
    
    
    import com.gitee.sunchenbin.mybatis.actable.annotation.Column;
    import com.gitee.sunchenbin.mybatis.actable.annotation.Table;
    import com.gitee.sunchenbin.mybatis.actable.command.BaseModel;
    import com.gitee.sunchenbin.mybatis.actable.constants.MySqlTypeConstant;
    
    @Table(name = "MybatisEntity")
    public class MybatisEntity extends BaseModel{
    
    	private static final long serialVersionUID = 5199200306752426433L;
    
    	@Column(name = "id",type = MySqlTypeConstant.INT,length = 11,isKey = true,isAutoIncrement = true)
    	private Integer	id;
    
    	@Column(name = "name",type = MySqlTypeConstant.VARCHAR,length = 111)
    	private String	name;
    
    	@Column(name = "description",type = MySqlTypeConstant.TEXT)
    	private String	description;
    
    	@Column(name = "create_time",type = MySqlTypeConstant.DATETIME)
    	private Date	create_time;
    
    	@Column(name = "update_time",type = MySqlTypeConstant.DATETIME)
    	private Date	update_time;
    
    	@Column(name = "number",type = MySqlTypeConstant.BIGINT,length = 5)
    	private Long	number;
    
    	@Column(name = "lifecycle",type = MySqlTypeConstant.CHAR,length = 1)
    	private String	lifecycle;
    
    	@Column(name = "dekes",type = MySqlTypeConstant.DOUBLE,length = 5,decimalLength = 2)
    	private Double	dekes;
    
    	public Integer getId(){
    		return id;
    	}
    
    	public void setId(Integer id){
    		this.id = id;
    	}
    
    	public String getName(){
    		return name;
    	}
    
    	public void setName(String name){
    		this.name = name;
    	}
    
    	public Date getCreate_time(){
    		return create_time;
    	}
    
    	public void setCreate_time(Date create_time){
    		this.create_time = create_time;
    	}
    
    	 public Date getUpdate_time(){
    	 return update_time;
    	 }
    	
    	 public void setUpdate_time(Date update_time){
    	 this.update_time = update_time;
    	 }
    
    	public String getDescription(){
    		return description;
    	}
    
    	public void setDescription(String description){
    		this.description = description;
    	}
    
    	public Long getNumber(){
    		return number;
    	}
    
    	public void setNumber(Long number){
    		this.number = number;
    	}
    
    	public String getLifecycle(){
    		return lifecycle;
    	}
    
    	public void setLifecycle(String lifecycle){
    		this.lifecycle = lifecycle;
    	}
    
    	public Double getDekes(){
    		return dekes;
    	}
    
    	public void setDekes(Double dekes){
    		this.dekes = dekes;
    	}
    
    }
    

      mybatisTableConfig

    /**  
    * <p>Title: MybatisTableConfig.java</p>  
    * <p>Description: </p>   
    * @author zhouyue 
    * @date 2018年11月29日  
    * @version 1.0  
    */  
    package com.boot.config;
    
    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;
    
    /**  
    * <p>Title: MybatisTableConfig</p>  
    * <p>Description: </p>  
    * @author zhouyue 
    * @date 2018年11月29日  
    */
    @Configuration
    @ComponentScan(basePackages = {"com.gitee.sunchenbin.mybatis.actable.manager.*"})
    public class MybatisTableConfig {
    
        @Value("${spring.datasource.driver-class-name}")
        private String driver;
    
        @Value("${spring.datasource.url}")
        private String url;
    
        @Value("${spring.datasource.username}")
        private String username;
    
        @Value("${spring.datasource.password}")
        private String password;
    
        @Bean
        public PropertiesFactoryBean configProperties() throws Exception{
            PropertiesFactoryBean propertiesFactoryBean = new PropertiesFactoryBean();
            PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
            propertiesFactoryBean.setLocations(resolver.getResources("classpath*:application.properties"));
            return propertiesFactoryBean;
        }
    
        @Bean
        public DruidDataSource dataSource() {
            DruidDataSource dataSource = new DruidDataSource();
            dataSource.setDriverClassName(driver);
            dataSource.setUrl(url);
            dataSource.setUsername(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.boot.entity.*");
            return sqlSessionFactoryBean;
        }
    
    }

    创建entity

    /**  
    * <p>Title: MybatisEntity.java</p>  
    * <p>Description: </p>   
    * @author zhouyue 
    * @date 2018年11月29日  
    * @version 1.0  
    */  
    package com.boot.entity;
    
    /**  
    * <p>Title: MybatisEntity</p>  
    * <p>Description: </p>  
    * @author zhouyue 
    * @date 2018年11月29日  
    */
    
    
    import java.sql.Date;
    
    
    import com.gitee.sunchenbin.mybatis.actable.annotation.Column;
    import com.gitee.sunchenbin.mybatis.actable.annotation.Table;
    import com.gitee.sunchenbin.mybatis.actable.command.BaseModel;
    import com.gitee.sunchenbin.mybatis.actable.constants.MySqlTypeConstant;
    
    @Table(name = "MybatisEntity")
    public class MybatisEntity extends BaseModel{
    
        private static final long serialVersionUID = 5199200306752426433L;
    
        @Column(name = "id",type = MySqlTypeConstant.INT,length = 11,isKey = true,isAutoIncrement = true)
        private Integer    id;
    
        @Column(name = "name",type = MySqlTypeConstant.VARCHAR,length = 111)
        private String    name;
    
        @Column(name = "description",type = MySqlTypeConstant.TEXT)
        private String    description;
    
        @Column(name = "create_time",type = MySqlTypeConstant.DATETIME)
        private Date    create_time;
    
        @Column(name = "update_time",type = MySqlTypeConstant.DATETIME)
        private Date    update_time;
    
        @Column(name = "number",type = MySqlTypeConstant.BIGINT,length = 5)
        private Long    number;
    
        @Column(name = "lifecycle",type = MySqlTypeConstant.CHAR,length = 1)
        private String    lifecycle;
    
        @Column(name = "dekes",type = MySqlTypeConstant.DOUBLE,length = 5,decimalLength = 2)
        private Double    dekes;
    
        public Integer getId(){
            return id;
        }
    
        public void setId(Integer id){
            this.id = id;
        }
    
        public String getName(){
            return name;
        }
    
        public void setName(String name){
            this.name = name;
        }
    
        public Date getCreate_time(){
            return create_time;
        }
    
        public void setCreate_time(Date create_time){
            this.create_time = create_time;
        }
    
         public Date getUpdate_time(){
         return update_time;
         }
        
         public void setUpdate_time(Date update_time){
         this.update_time = update_time;
         }
    
        public String getDescription(){
            return description;
        }
    
        public void setDescription(String description){
            this.description = description;
        }
    
        public Long getNumber(){
            return number;
        }
    
        public void setNumber(Long number){
            this.number = number;
        }
    
        public String getLifecycle(){
            return lifecycle;
        }
    
        public void setLifecycle(String lifecycle){
            this.lifecycle = lifecycle;
        }
    
        public Double getDekes(){
            return dekes;
        }
    
        public void setDekes(Double dekes){
            this.dekes = dekes;
        }
    
    }

    代码地址

    https://github.com/zyf970617/mybatis-auto-create-table.git

  • 相关阅读:
    基于802.11Fuzz技术的研究
    mips体系堆栈回溯分析与实现
    MIPS架构上函数调用过程的堆栈和栈帧
    IDA Pro使用技巧
    工控安全入门分析
    工控安全入门之Ethernet/IP
    使用PLC作为payload/shellcode分发系统
    qemu基本使用
    IDA Pro使用(静态分析+动态调试)
    逆向安全基础之IDA使用简介
  • 原文地址:https://www.cnblogs.com/wudixiaoguaishou/p/10048866.html
Copyright © 2020-2023  润新知