Java实现自动建表_mybatis自动建表的实现方法

本文介绍了如何在Java项目中使用mybatis-enhance-actable库来实现自动建表的功能。首先,需要添加actable依赖并配置相关属性。然后,创建配置类设置数据源、事务管理器和SqlSessionFactoryBean。实体类上使用actable注解定义表结构。通过这些步骤,可以实现mybatis的自动建表功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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.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.jpxx.clsh.entity.*");

return sqlsessionfactorybean;

}

}

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:48

* @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;

}

运行日志

61c85c5b36674ddcbf92445cbd32dbc2.png

e5999bbf67c89c6b92278a3261f3af09.png

到此这篇关于mybatis自动建表的实现方法的文章就介绍到这了,更多相关mybatis 自动建表内容请搜索萬仟网以前的文章或继续浏览下面的相关文章希望大家以后多多支持萬仟网!

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值