springBoot에서 데이터베이스 테이블을 자동으로 생성하기 위해 Java를 구현하는 방법

WBOY
풀어 주다: 2023-05-19 12:34:06
앞으로
2837명이 탐색했습니다.

SpringBoot 환경 시작 프로젝트는 데이터베이스 테이블을 생성합니다

환경 사용

Steps

1. SpringBoot 프로젝트 생성

2. 초기화 데이터베이스를 작성합니다. 테이블 클래스

4. 실행하고 결과 보기

1. SpringBoot 프로젝트 만들기

SpringBoot 프로젝트를 만드는 방법에 대한 자세한 설명은 없으며 실행할 수 있는 SpringBoot 프로젝트만 만듭니다.

2. 새 데이터베이스 생성 및 연결 정보 구성

2.1 새 데이터베이스 생성

Navicat을 열고 새 Mysql 연결을 생성합니다(사용자 이름, 비밀번호 등의 연결 정보를 기억해야 하며 구성해야 합니다). 연결 정보는 아래 참조). 연결을 설정한 후 데이터베이스 이름을 "nfsj"로 설정합니다. 아래 구성 정보를 수정하면 됩니다.

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
로그인 후 복사
springBoot에서 데이터베이스 테이블을 자동으로 생성하기 위해 Java를 구현하는 방법참고: 구성 정보는 여기에 있습니다. 데이터베이스 생성 시의 구성 정보와 동일합니다.

3. 초기화 데이터베이스 테이블 클래스를 작성합니다.

프로젝트 디렉토리 src/main/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 클래스를 찾아 클래스를 실행하고 작업이 완료된 후 탐색을 열어 데이터베이스를 보고 이름이 "sys_admin_divisions"인 테이블을 찾습니다. "sys_admin_divisions"가 테이블에 관련 필드가 생성되었습니다.

위 내용은 springBoot에서 데이터베이스 테이블을 자동으로 생성하기 위해 Java를 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:yisu.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!