springboot下怎么实现java自动创建数据库表-mile米乐体育
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自动创建数据库表”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注恰卡编程网行业资讯频道。