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

這篇文章主要介紹了springBoot下怎么實(shí)現(xiàn)java自動(dòng)創(chuàng)建數(shù)據(jù)庫表的相關(guān)知識(shí),內(nèi)容詳細(xì)易懂,操作簡單快捷,具有一定借鑒價(jià)值,相信大家閱讀完這篇springBoot下怎么實(shí)現(xiàn)java自動(dòng)創(chuàng)建數(shù)據(jù)庫表文章都會(huì)有所收獲,下面我們一起來看看吧。

創(chuàng)新互聯(lián)專注于企業(yè)網(wǎng)絡(luò)營銷推廣、網(wǎng)站重做改版、攀枝花網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5高端網(wǎng)站建設(shè)、商城網(wǎng)站定制開發(fā)、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)營銷網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為攀枝花等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。

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

使用環(huán)境

windows+eclipse+MySQL+navicat

步驟

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

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

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

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

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

關(guān)于如何創(chuàng)建SpringBoot項(xiàng)目不再詳細(xì)描述,只要?jiǎng)?chuàng)建一個(gè)可以運(yùn)行的SpringBoot項(xiàng)目就行。

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

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

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

2.2 配置連接信息

項(xiàng)目中找到如下圖文件,打開文件添加配置:

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

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

# 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ù)庫時(shí)的配置信息。

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

在項(xiàng)目目錄src/main/java下新建一個(gè)包,報(bào)名任意,在包下新建一個(gè)類,類名稱為”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單元測(cè)試啟動(dòng)類注解
//@RunWith(SpringRunner.class)
//@SpringBootTest
//@Component
@Repository  //繼承自@Component,作用于持久層
/**
 * 如果配置文件沒有在默認(rèn)目錄下,使用注解@PropertySource獲取,下面演示的是在多配置文件中獲取相同屬性名的值,以后置為準(zhǔn)
 * 單配置文件只要一個(gè)路徑參數(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);
		//測(cè)試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{
			// 先判斷是否純?cè)诒砻?,有則先刪除表在創(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省級(jí) 2市級(jí) 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 "上級(jí)行政區(qū)劃數(shù)字代碼","
					+ "IS_DISPLAY int(1) DEFAULT NULL COMMENT "是否顯示( 0:否 1:是 )","
					+ "SORT bigint(20) DEFAULT NULL COMMENT "排序標(biāo)識(shí)","
					+ "DEL_FLAG int(1) DEFAULT NULL COMMENT "刪除標(biāo)識(shí)(0:正常 1:已刪除)","
					+ "PRIMARY KEY (ID)"
					+ ") ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT="行政區(qū)劃 (省市區(qū))";"
					);
		}
		// 釋放資源
		stat.close();
        conn.close();
	}
}

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

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

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

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

關(guān)于“springBoot下怎么實(shí)現(xiàn)java自動(dòng)創(chuàng)建數(shù)據(jù)庫表”這篇文章的內(nèi)容就介紹到這里,感謝各位的閱讀!相信大家對(duì)“springBoot下怎么實(shí)現(xiàn)java自動(dòng)創(chuàng)建數(shù)據(jù)庫表”知識(shí)都有一定的了解,大家如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

文章題目:springBoot下怎么實(shí)現(xiàn)java自動(dòng)創(chuàng)建數(shù)據(jù)庫表
網(wǎng)站地址:http://bm7419.com/article12/igcsgc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站網(wǎng)站改版、做網(wǎng)站、網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)ChatGPT

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)