springboot+mybatis通过实体类自动生成数据库表的方法通过实体类自动生成数据库表的方法
主要介绍了springboot+mybatis通过实体类自动生成数据库表的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着
小编来一起学习学习吧
前言前言
本章介绍使用mybatis结合mysql数据库自动根据实体类生成相关的数据库表。
首先引入相关的pom包我这里使用的是springboot2.1.8.RELEASE的版本
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.0</version>
</dependency>
<dependency>
<groupId>com.gitee.sunchenbin.mybatis.actable</groupId>
<artifactId>mybatis-enhance-actable</artifactId>
<version>1.0.1</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.10</version>
</dependency>
<!--以下两个类需要加入,否则报错无法注入-->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.4</version>
</dependency>
<dependency>
<groupId>net.sf.json-lib</groupId>
<artifactId>json-lib</artifactId>
<version>2.4</version>
<classifier>jdk15</classifier>
<exclusions>
<exclusion>
<artifactId>commons-logging</artifactId>
<groupId>commons-logging</groupId>
</exclusion>
</exclusions>
</dependency>
添加数据库配置文件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;
//连接数据库配置文件的地址,具体查阅配置文件的结构
@Value("${spring.datasource.druid.username}")
private String username;
//连接数据库配置文件的地址,具体查阅配置文件的结构
@Value("${spring.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.properties"));//classpath*:application.properties是mybatis的生成表配置文件
return propertiesFactoryBean;
}
@Bean
评论2
最新资源