最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

springBoot下實現(xiàn)java自動創(chuàng)建數(shù)據(jù)庫表

 更新時間:2021年07月02日 08:45:06   作者:寒語-四月魂  
這篇文章主要介紹了springBoot下實現(xiàn)java自動創(chuàng)建數(shù)據(jù)庫表的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

SpringBoot環(huán)境啟動項目創(chuàng)建數(shù)據(jù)庫表

使用環(huán)境

windows+eclipse+mysql+navicat

步驟

1.創(chuàng)建SpringBoot項目

2.新建數(shù)據(jù)庫,配置連接信息

3.編寫初始化數(shù)據(jù)庫表類

4.運行查看結(jié)果

1.創(chuàng)建SpringBoot項目

關(guān)于如何創(chuàng)建SpringBoot項目不再詳細描述,只要創(chuàng)建一個可以運行的SpringBoot項目就行。

2.新建數(shù)據(jù)庫,配置連接信息

2.1 新建數(shù)據(jù)庫

打開Navicat新建一個Mysql連接(連接信息如用戶名,密碼記好,下面配置連接信息要用),建立好連接后新建一個數(shù)據(jù)庫,設(shè)置數(shù)據(jù)庫名稱為"nfsj",這個根據(jù)自己喜好設(shè)置,記得在下面配置信息修改就行。

2.2 配置連接信息

項目中找到如下圖文件,打開文件添加配置:

在這里插入圖片描述

打開上述文件,添加如下代碼:

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

注意:這里的配置信息天上你創(chuàng)建數(shù)據(jù)庫時的配置信息。

3.編寫初始化數(shù)據(jù)庫表類

在項目目錄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獲取,下面演示的是在多配置文件中獲取相同屬性名的值,以后置為準
 * 單配置文件只要一個路徑參數(shù)就可以
 */
//@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{
		//連接數(shù)據(jù)庫
		Class.forName(driver);
		//測試url中是否包含useSSL字段,沒有則添加設(shè)該字段且禁用
		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();
		//獲取數(shù)據(jù)庫表名
		ResultSet rs = conn.getMetaData().getTables(null, null, "sys_admin_divisions", null);
		
		// 判斷表是否存在,如果存在則什么都不做,否則創(chuàng)建表
		if( rs.next() ){
			return;
		}
		else{
			// 先判斷是否純在表名,有則先刪除表在創(chuàng)建表
//			stat.executeUpdate("DROP TABLE IF EXISTS sys_admin_divisions;CREATE TABLE sys_admin_divisions("
			//創(chuàng)建行政區(qū)劃表
			stat.executeUpdate("CREATE TABLE sys_admin_divisions("
					+ "ID varchar(32) NOT NULL COMMENT '行政區(qū)劃ID(行政區(qū)劃代碼)這里不使用32位的UUID,使用全數(shù)字的行政區(qū)域代碼作為ID(如:440000)',"
					+ "TYPE varchar(50) DEFAULT NULL COMMENT '類型(1省級 2市級 3區(qū)縣)',"
					+ "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 '上級行政區(qū)劃數(shù)字代碼',"
					+ "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='行政區(qū)劃 (省市區(qū))';"
					);
		}
		// 釋放資源
		stat.close();
        conn.close();
	}
}

注:上面的建表邏輯是先判斷數(shù)據(jù)庫中是否存在要創(chuàng)建的表,如果有則返回不做任何操作。如果數(shù)據(jù)庫中不存在要創(chuàng)建的表,則創(chuàng)建新表。具體邏輯可以根據(jù)自己需求定義。

去掉判斷數(shù)據(jù)庫中是否存在表的判斷操作,也可以使用注釋掉的如果存在表則先刪除表在創(chuàng)建表(這樣會刪除原表中的數(shù)據(jù))。

4.運行查看結(jié)果

找到項目中的Application.java類,運行該類,等運行完畢后再打開navicate查看自己的數(shù)據(jù)庫,發(fā)現(xiàn)數(shù)據(jù)庫中已經(jīng)創(chuàng)建好了一個表為"sys_admin_divisions"的表和表中的相關(guān)字段。

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java多種方法實現(xiàn)合并多個list對象列表

    Java多種方法實現(xiàn)合并多個list對象列表

    Java編程中,合并多個列表對象可以通過Stream?API或傳統(tǒng)循環(huán)方式實現(xiàn),使用Stream?API合并時,利用flatMap方法將嵌套的List展平,再通過collect方法收集成一個新的列表,傳統(tǒng)循環(huán)則通過創(chuàng)建一個空的ArrayList,并通過遍歷每個列表將元素添加進去
    2024-09-09
  • spring配置文件加密方法示例

    spring配置文件加密方法示例

    這篇文章主要介紹了spring配置文件加密方法示例,簡單介紹了什么是配置文件,然后分享了在實際生產(chǎn)環(huán)境中,對配置文件不允許出現(xiàn)明文用戶名及密碼等信息需求的Java實現(xiàn)代碼,具有一定參考價值,需要的朋友可以了解下。
    2017-11-11
  • Spring MVC 使用支付寶接口完成在線支付的示例代碼

    Spring MVC 使用支付寶接口完成在線支付的示例代碼

    本篇文章主要介紹了Spring MVC 使用支付寶接口完成在線支付的示例代碼,具有一定的參考價值,有興趣的可以了解一下
    2017-08-08
  • Spring?Security?核心過濾器鏈講解

    Spring?Security?核心過濾器鏈講解

    這篇文章主要介紹了Spring?Security?核心過濾器鏈,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • spring boot項目打包成war在tomcat運行的全步驟

    spring boot項目打包成war在tomcat運行的全步驟

    這篇文章主要給大家介紹了關(guān)于spring boot項目打包成war在tomcat運行的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用spring boot具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-04-04
  • Java編程學習的幾個典型實例詳解

    Java編程學習的幾個典型實例詳解

    這篇文章主要給大家介紹了Java編程學習的幾個典型實例,其中包括模擬酒店房間管理系統(tǒng)、螺旋矩陣 例或者百雞問題的變形等經(jīng)典實例,具體來一起看詳細內(nèi)容吧,需要的朋友可以參考學習。
    2017-02-02
  • Java實現(xiàn)二維碼QRCode的編碼和解碼與示例解析

    Java實現(xiàn)二維碼QRCode的編碼和解碼與示例解析

    本文主要介紹Java實現(xiàn)二維碼QRCode的編碼和解碼,這里給大家一個小示例以便理解,有需要的小伙伴可以參考下
    2016-08-08
  • SpringCloud的網(wǎng)關(guān)Zuul和Gateway詳解

    SpringCloud的網(wǎng)關(guān)Zuul和Gateway詳解

    SpringCloudZuul和SpringCloudGateway都是用于構(gòu)建微服務(wù)架構(gòu)中的API網(wǎng)關(guān)的組件,但SpringCloudGateway在性能、功能特性和生態(tài)支持等方面有一些優(yōu)勢,因此推薦使用SpringCloudGateway作為首選
    2025-02-02
  • java獲取包下被指定注解的類過程解析

    java獲取包下被指定注解的類過程解析

    這篇文章主要介紹了java獲取包下被指定注解的類過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-10-10
  • 一文徹底搞懂Java日期時間類詳解

    一文徹底搞懂Java日期時間類詳解

    這篇文章主要給大家介紹了關(guān)于Java日期時間類的相關(guān)資料,Calendar類的功能要比Date類強大很多,可以方便的進行日期的計算,獲取日期中的信息時考慮了時區(qū)等問題,需要的朋友可以參考下
    2023-10-10

最新評論

东阿县| 南郑县| 遵义县| 潮安县| 荆门市| 岫岩| 揭东县| 兴隆县| 仪征市| 罗江县| 基隆市| 新和县| 宜宾市| 丹棱县| 广州市| 谷城县| 龙口市| 蚌埠市| 宣化县| 梧州市| 崇文区| 浪卡子县| 措美县| 西盟| 罗江县| 运城市| 康马县| 武胜县| 武强县| 浦东新区| 谢通门县| 贵定县| 泽库县| 仁布县| 鲜城| 新余市| 石阡县| 塔城市| 新兴县| 土默特左旗| 聊城市|