Steps
2. 초기화 데이터베이스를 작성합니다. 테이블 클래스
4. 실행하고 결과 보기
1. SpringBoot 프로젝트 만들기
SpringBoot 프로젝트를 만드는 방법에 대한 자세한 설명은 없으며 실행할 수 있는 SpringBoot 프로젝트만 만듭니다.
2.1 새 데이터베이스 생성
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
3. 초기화 데이터베이스 테이블 클래스를 작성합니다.
프로젝트 디렉토리 src/main/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 중국어 웹사이트의 기타 관련 기사를 참조하세요!