千家信息网

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

发表于:2025-01-17 作者:千家信息网编辑
千家信息网最后更新 2025年01月17日,这篇文章主要介绍了springBoot下怎么实现java自动创建数据库表的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇springBoot下怎么实现java自动创建数据库
千家信息网最后更新 2025年01月17日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

package cn.idatatech.folivora.modules.sys.common;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import javax.annotation.PostConstruct;import org.springframework.beans.factory.annotation.Value;import org.springframework.stereotype.Repository;//SpringBoot单元测试启动类注解//@RunWith(SpringRunner.class)//@SpringBootTest//@Component@Repository  //继承自@Component,作用于持久层/** * 如果配置文件没有在默认目录下,使用注解@PropertySource获取,下面演示的是在多配置文件中获取相同属性名的值,以后置为准 * 单配置文件只要一个路径参数就可以 *///@PropertySource({"classpath:application.properties","classpath:config/config.properties"})  public class InitSysAdminDivisions {        @Value(value = "${folivora.datasource.driver-class-name}")        private String driver;                   @Value(value = "${folivora.datasource.url}")        private String url;                   @Value(value = "${folivora.datasource.username}")        private String userName;                @Value(value = "${folivora.datasource.password}")        private String password;                @PostConstruct        public void init() throws SQLException, ClassNotFoundException{                //连接数据库                Class.forName(driver);                //测试url中是否包含useSSL字段,没有则添加设该字段且禁用                if( url.indexOf("?") == -1 ){                        url = url + "?useSSL=false" ;                }                else if( url.indexOf("useSSL=false") == -1 || url.indexOf("useSSL=true") == -1 )                {                        url = url + "&useSSL=false";                }                Connection conn = DriverManager.getConnection(url, userName, password);                Statement stat = conn.createStatement();                //获取数据库表名                ResultSet rs = conn.getMetaData().getTables(null, null, "sys_admin_divisions", null);                                // 判断表是否存在,如果存在则什么都不做,否则创建表                if( rs.next() ){                        return;                }                else{                        // 先判断是否纯在表名,有则先删除表在创建表//                      stat.executeUpdate("DROP TABLE IF EXISTS sys_admin_divisions;CREATE TABLE sys_admin_divisions("                        //创建行政区划表                        stat.executeUpdate("CREATE TABLE sys_admin_divisions("                                        + "ID varchar(32) NOT NULL COMMENT "行政区划ID(行政区划代码)这里不使用32位的UUID,使用全数字的行政区域代码作为ID(如:440000)","                                        + "TYPE varchar(50) DEFAULT NULL COMMENT "类型(1省级 2市级 3区县)","                                        + "CODE varchar(50) DEFAULT NULL COMMENT "字母代码","                                        + "NAME varchar(100) DEFAULT NULL COMMENT "名称","                                        + "PINYIN varchar(100) DEFAULT NULL COMMENT "拼音","                                        + "PARENT_ID varchar(32) DEFAULT NULL COMMENT "上级行政区划数字代码","                                        + "IS_DISPLAY int(1) DEFAULT NULL COMMENT "是否显示( 0:否 1:是 )","                                        + "SORT bigint(20) DEFAULT NULL COMMENT "排序标识","                                        + "DEL_FLAG int(1) DEFAULT NULL COMMENT "删除标识(0:正常 1:已删除)","                                        + "PRIMARY KEY (ID)"                                        + ") ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT="行政区划 (省市区)";"                                        );                }                // 释放资源                stat.close();        conn.close();        }}

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

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

4.运行查看结果

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

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

数据 数据库 配置 信息 项目 文件 代码 行政区划 运行 字段 知识 内容 名称 数字 标识 注解 环境 目录 篇文章 类名 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 软件开发与云平台云应用差别 数据库的视图在图形界面进行操作 王牌竞速怎么选择网易服务器 我的世界籽岷小游戏服务器 手机app本地数据库同步 2018国家网络安全 标语 安庆市联通dns服务器地址 软件开发 交付文件 镇江山水互联网科技 管家婆物联通数据库配置 安居宝是网络安全股票吗 小学网络安全知识资料 网络安全主题班会开展目的 服务器安全防护哪个软件好 聚盟科技对话移动互联网 民宗局网络安全报告 电脑wifi网络安全密匙不正确 工业网络技术关键词 网络安全知识普及教育 李沧区苹果软件开发服务公司 深圳房地产信息网数据库 行为审计服务器 杨浦区创新金融网络技术服务 上海综合日志审计服务器 阿里云购买的服务器能更改地址吗 数据库的每个用户是否可用 织梦cms数据库 江苏云服务器安全云空间 摄像头与视频服务器连接端口 广东计算机网络技术专升本学校
0