springBoot下怎么实现java自动创建数据库表

springBoot下怎么实现java自动创建数据库表

这篇文章主要介绍了springBoot下怎么实现java自动创建数据库表的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇springBoot下怎么实现java自动创建数据库表文章都会有所收获,下面我们一起来看看吧。

SpringBoot环境启动项目创建数据库表

使用环境

windows+eclipse+mysql+navicat

步骤

1.创建SpringBoot项目

2.新建数据库,配置连接信息

3.编写初始化数据库表类

4.运行查看结果

1.创建SpringBoot项目

关于如何创建SpringBoot项目不再详细描述,只要创建一个可以运行的SpringBoot项目就行。

2.新建数据库,配置连接信息

2.1 新建数据库

打开Navicat新建一个Mysql连接(连接信息如用户名,密码记好,下面配置连接信息要用),建立好连接后新建一个数据库,设置数据库名称为"nfsj",这个根据自己喜好设置,记得在下面配置信息修改就行。

2.2 配置连接信息

项目中找到如下图文件,打开文件添加配置:

打开上述文件,添加如下代码:

#datasourcefolivora.datasource.url=jdbc:mysql://localhost:3306/nfsj?useUnicode=true&characterEncoding=utf-8folivora.datasource.username=rootfolivora.datasource.password=123456folivora.datasource.driver-class-name=com.mysql.jdbc.Driver

注意:这里的配置信息天上你创建数据库时的配置信息。

3.编写初始化数据库表类

在项目目录src/main/java下新建一个包,报名任意,在包下新建一个类,类名称为”InitSysAdminDivisions.java"(类名称也可以自己命名)。

InitSysAdminDivisions.java

packagecn.idatatech.folivora.modules.sys.common;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.sql.Statement;importjavax.annotation.PostConstruct;importorg.springframework.beans.factory.annotation.Value;importorg.springframework.stereotype.Repository;//SpringBoot单元测试启动类注解//@RunWith(SpringRunner.class)//@SpringBootTest//@Component@Repository//继承自@Component,作用于持久层/***如果配置文件没有在默认目录下,使用注解@PropertySource获取,下面演示的是在多配置文件中获取相同属性名的值,以后置为准*单配置文件只要一个路径参数就可以*///@PropertySource({"classpath:application.properties","classpath:config/config.properties"})publicclassInitSysAdminDivisions{@Value(value="${folivora.datasource.driver-class-name}")privateStringdriver;@Value(value="${folivora.datasource.url}")privateStringurl;@Value(value="${folivora.datasource.username}")privateStringuserName;@Value(value="${folivora.datasource.password}")privateStringpassword;@PostConstructpublicvoidinit()throwsSQLException,ClassNotFoundException{//连接数据库Class.forName(driver);//测试url中是否包含useSSL字段,没有则添加设该字段且禁用if(url.indexOf("?")==-1){url=url+"?useSSL=false";}elseif(url.indexOf("useSSL=false")==-1||url.indexOf("useSSL=true")==-1){url=url+"&useSSL=false";}Connectionconn=DriverManager.getConnection(url,userName,password);Statementstat=conn.createStatement();//获取数据库表名ResultSetrs=conn.getMetaData().getTables(null,null,"sys_admin_divisions",null);//判断表是否存在,如果存在则什么都不做,否则创建表if(rs.next()){return;}else{//先判断是否纯在表名,有则先删除表在创建表//stat.executeUpdate("DROPTABLEIFEXISTSsys_admin_divisions;CREATETABLEsys_admin_divisions("//创建行政区划表stat.executeUpdate("CREATETABLEsys_admin_divisions("+"IDvarchar(32)NOTNULLCOMMENT"行政区划ID(行政区划代码)这里不使用32位的UUID,使用全数字的行政区域代码作为ID(如:440000)","+"TYPEvarchar(50)DEFAULTNULLCOMMENT"类型(1省级2市级3区县)","+"CODEvarchar(50)DEFAULTNULLCOMMENT"字母代码","+"NAMEvarchar(100)DEFAULTNULLCOMMENT"名称","+"PINYINvarchar(100)DEFAULTNULLCOMMENT"拼音","+"PARENT_IDvarchar(32)DEFAULTNULLCOMMENT"上级行政区划数字代码","+"IS_DISPLAYint(1)DEFAULTNULLCOMMENT"是否显示(0:否1:是)","+"SORTbigint(20)DEFAULTNULLCOMMENT"排序标识","+"DEL_FLAGint(1)DEFAULTNULLCOMMENT"删除标识(0:正常1:已删除)","+"PRIMARYKEY(ID)"+")ENGINE=InnoDBDEFAULTCHARSET=utf8COMMENT="行政区划(省市区)";");}//释放资源stat.close();conn.close();}}

注:上面的建表逻辑是先判断数据库中是否存在要创建的表,如果有则返回不做任何操作。如果数据库中不存在要创建的表,则创建新表。具体逻辑可以根据自己需求定义。

去掉判断数据库中是否存在表的判断操作,也可以使用注释掉的如果存在表则先删除表在创建表(这样会删除原表中的数据)。

4.运行查看结果

找到项目中的Application.java类,运行该类,等运行完毕后再打开navicate查看自己的数据库,发现数据库中已经创建好了一个表为"sys_admin_divisions"的表和表中的相关字段。

关于“springBoot下怎么实现java自动创建数据库表”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“springBoot下怎么实现java自动创建数据库表”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注恰卡编程网行业资讯频道。

发布于 2022-04-03 22:34:43
收藏
分享
海报
0 条评论
35
上一篇:eclipse创建springboot项目的方式有哪些 下一篇:SpringBoot整合RocketMQ遇到的坑怎么解决
目录

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码