windows eclipse mysql navicat
1. SpringBoot プロジェクトを作成します
2. 新しいデータベースを作成し、接続情報を構成します
3. 初期化データベース テーブル クラスを書き込みます
4. 実行して結果を表示します
SpringBoot プロジェクトの作成方法についてはこれ以上詳しく説明しません。実行可能な SpringBoot プロジェクトを作成するだけです。
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
注: ここでの構成情報は、データベースを作成したときの構成情報と同じです。
プロジェクトディレクトリ src/main/java の下に新しいパッケージを作成し、必要に応じて登録し、そのパッケージの下に class を使用して新しいクラスを作成します名前は「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(); } }
注: 上記のテーブル作成ロジックは、まず作成するテーブルがデータベースに存在するかどうかを判断し、存在する場合は何も操作せずに戻ります。作成するテーブルがデータベースに存在しない場合は、新しいテーブルが作成されます。特定のロジックは、独自のニーズに応じて定義できます。
テーブルがデータベースに存在するかどうかを判断するための判定操作を削除します。また、コメントアウトされた「テーブルが存在する場合は、最初にテーブルを削除してからテーブルを作成します(これにより、データベース内のデータが削除されます)」を使用することもできます。元のテーブル)。
プロジェクトで Application.java クラスを見つけてクラスを実行し、操作が完了したら、ナビゲートを開いて独自のデータベースを表示し、データベースが作成されました。テーブル「sys_admin_divisions」とテーブル内の関連フィールド。
以上がSpringBoot でデータベース テーブルを自動的に作成する Java を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。