springBoot下怎么实现java自动创建数据库表(java,springboot,数据库,移动开发)

时间:2024-05-02 10:41:37 作者 : 石家庄SEO 分类 : 移动开发
  • TAG :

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

使用环境

windows+eclipse+mysql+navicat

步骤

1.创建SpringBoot项目

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

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

4.运行查看结果

1.创建SpringBoot项目

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

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

2.1 新建数据库

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

2.2 配置连接信息

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

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

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

#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; @PostConstruct publicvoidinit()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"的表和表中的相关字段。

 </div> <div class="zixun-tj-product adv-bottom"></div> </div> </div> <div class="prve-next-news">
本文:springBoot下怎么实现java自动创建数据库表的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:SpringBoot整合RocketMQ遇到的坑怎么解决下一篇:

5 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18