前言
本章介绍使用mybatis结合mysql数据库自动根据实体类生成相关的数据库表。
首先引入相关的pom包我这里使用的是springboot2.1.8.RELEASE的版本
org.mybatis.spring.boot
mybatis-spring-boot-starter
2.1.0
com.gitee.sunchenbin.mybatis.actable
mybatis-enhance-actable
1.0.1
mysql
mysql-connector-java
runtime
com.alibaba
druid-spring-boot-starter
1.1.10
org.apache.commons
commons-lang3
3.4
net.sf.json-lib
json-lib
2.4
jdk15
commons-logging
commons-logging
添加数据库配置文件application.properties
application.properties这里是单独配置mybatis自动建表的相关信息。
mybatis.table.auto=update
mybatis.model.pack=com.xxx.xxx.entity//实体类的路径
mybatis.database.type=mysql
mybatis.table.auto=
create:
每次加载hibernate会自动创建表,以后启动会覆盖之前的表,所以这个值基本不用,严重会导致的数据的丢失。
create-drop :
每次加载hibernate时根据model类生成表,但是sessionFactory一关闭,表就自动删除,下一次启动会重新创建。
update:
加载hibernate时根据实体类model创建数据库表,这是表名的依据是@Entity注解的值或者@Table注解的值,sessionFactory关闭表不会删除,且下一次启动会根据实体。
model:
更新结构或者有新的实体类会创建新的表。
validate:
启动时验证表的结构,不会创建表 none:启动时不做任何操作
mybatis.model.pack=com.xxx.xxx.entity//你实体类的路径
个人项目配置文件,非统一,根据项目需求配置
进行生成数据库表相关配置
TestConfig配置文件
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;
@Configuration
@ComponentScan(basePackages = {"com.gitee.sunchenbin.mybatis.actable.manager.*"})//固定的包
public class TestConfig {
//连接数据库配置文件的地址,具体查阅配置文件的结构
@Value("${spring.datasource.druid.driver-class-name}")
private String driver;
//连接数据库配置文件的地址,具体查阅配置文件的结构
@Value("${spring.datasource.druid.url}")
private String url;
//连接数据库配置文件的地址,具体查阅配置文件的结构
@