Maison > Java > javaDidacticiel > Comment implémenter Java pour créer automatiquement des tables de base de données sous springBoot

Comment implémenter Java pour créer automatiquement des tables de base de données sous springBoot

WBOY
Libérer: 2023-05-19 12:34:06
avant
2927 Les gens l'ont consulté

Le projet de démarrage de l'environnement SpringBoot crée une table de base de données

Utilisation de l'environnement

windows+eclipse+mysql+navicat

Étapes

1 Créer un projet SpringBoot

2. Créez une nouvelle base de données et configurez les informations de connexion

3. classe de table

4. Exécutez et affichez les résultats

1. Créez un projet SpringBoot

Il n'y a pas de description détaillée sur la façon de créer un projet SpringBoot, créez simplement un projet SpringBoot qui peut s'exécuter.

2. Créez une nouvelle base de données et configurez les informations de connexion

2.1 Créez une nouvelle base de données

Ouvrez Navicat et créez une nouvelle connexion Mysql (les informations de connexion telles que le nom d'utilisateur et le mot de passe doivent être mémorisées et vous devrez configurer les informations de connexion ci-dessous). Après avoir établi la connexion, créez une nouvelle base de données. Définissez le nom de la base de données sur "nfsj". N'oubliez pas de modifier les informations de configuration ci-dessous.

2.2 Configurer les informations de connexion

Trouvez le fichier comme indiqué ci-dessous dans le projet, ouvrez le fichier et ajoutez la configuration :

Comment implémenter Java pour créer automatiquement des tables de base de données sous springBoot

Ouvrez le fichier ci-dessus et ajoutez le code suivant :

# 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
Copier après la connexion

Remarque : les informations de configuration ici est la même que les informations de configuration lorsque vous avez créé la base de données.

3. Écrivez une classe de table de base de données d'initialisation

Créez un nouveau package sous le répertoire du projet src/main/java Créez une nouvelle classe sous le package. le nom de la classe peut également être nommé par vous-même).

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();
	}
}
Copier après la connexion

Remarque : La logique de création de table ci-dessus consiste à déterminer d'abord si la table à créer existe dans la base de données, et si c'est le cas, à revenir sans effectuer aucune opération. Si la table à créer n'existe pas dans la base de données, une nouvelle table est créée. La logique spécifique peut être définie selon vos propres besoins.

Supprimez l'opération de jugement pour déterminer si la table existe dans la base de données. Vous pouvez également utiliser le commentaire "Si la table existe, supprimez d'abord la table, puis créez la table (cela supprimera les données de la table d'origine). "

4. Exécutez pour afficher les résultats

Trouvez la classe Application.java dans le projet, exécutez la classe et une fois l'opération terminée, ouvrez Navigate pour afficher votre base de données. Il apparaît qu'une table portant le nom "sys_admin_divisions". " et " sys_admin_divisions " ont été créés dans la base de données. Champs associés dans le tableau.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:yisu.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal