springBoot下怎么实现java自动创建数据库表
导读:本文共3199字符,通常情况下阅读需要11分钟。同时您也可以点击右侧朗读,来听本文内容。按键盘←(左) →(右) 方向键可以翻页。
摘要: SpringBoot环境启动项目创建数据库表使用环境windows+eclipse+mysql+navicat步骤1.创建SpringBoot项目2.新建数据库,配置连接信息3.编写初始化数据库表类4.运行查看结果1.创建SpringBoot项目关于如何创建SpringBoot项目不再详细描述,只要创建一个可以运行的SpringBoot项目就行。2.新建数据库,... ...
目录
(为您整理了一些要点),点击可以直达。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; @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自动创建数据库表的详细内容,希望对您有所帮助,信息来源于网络。