中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

springBoot下怎么實現java自動創建數據庫表

發布時間:2022-04-02 15:40:37 來源:億速云 閱讀:1866 作者:iii 欄目:移動開發

這篇文章主要介紹了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 配置連接信息

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

springBoot下怎么實現java自動創建數據庫表

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

# 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

注意:這里的配置信息天上你創建數據庫時的配置信息。

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自動創建數據庫表”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

惠州市| 洞头县| 临西县| 东乡族自治县| 昌图县| 金溪县| 鞍山市| 竹北市| 襄城县| 临西县| 灵璧县| 噶尔县| 绥棱县| 翁源县| 宣威市| 包头市| 马鞍山市| 台中市| 仪征市| 遂昌县| 渝北区| 波密县| 新营市| 磐石市| 枞阳县| 平和县| 鞍山市| 阳泉市| 宜君县| 营山县| 肥东县| 辛集市| 彩票| 贵州省| 义马市| 山东| 新乡市| 通渭县| 宝应县| 宜宾县| 忻州市|