Springboot+jpa自動生成テーブル、および発生する可能性のある問題
3171 ワード
SpringbootはJpaと組み合わせて表1の自動生成を実現し、Springboot+mavenプロジェクトを作成し、JPA依存とMySQL駆動を導入する
(ここではmysqlドライバパッケージのバージョンに注意する、java.sql.S c u n g o n T r a n s i n t ConnectionException:CLIENT_PLUGIN_AUTH is requiredを引き起こす可能性がある)2、resourcesフォルダの下にアプリケーションを作成する.ymlファイル
三、エンティティークラスの作成(エンティティークラスがcom.exampleでエンティティークラスがcom.example.pojoであるように、エンティティークラスを起動クラスパッケージの下に構築する必要があることを覚えておいてください)、ここにエンティティークラスコードを貼り付けます
エンティティークラスの説明:エンティティークラスのシーケンス化、すなわちSerializableインタフェース の実装が必要である.注記はjavaxです.persistenceの @Entity:エンティティクラスを宣言 @Table:エンティティとテーブルのマッピングを形成し、name属性はテーブル名を指定し、デフォルトはクラス名 を指定しない@Id:宣言キー @GenericGenerator:hibernateが提供するカスタムプライマリ・キー生成ポリシー・ジェネレータです.したがって、@GeneratedValueとともに使用する必要があります.また、@GeneratedValue注釈の「Generator」属性は@GenericGenerator注釈のname属性と一致し、strategy属性はhibernateのプライマリ・キー生成ポリシーを表し、@GenericGeneratorは13種類のポリシーをサポートします.ここで最も広く使われているuuid GeneratedValue:2つの属性パラメータ:GenerationTypeタイプのstrategyとStringタイプのgenerator、generator@GenericGeneratorの「name」属性に対応し、「strategy」には4つのデフォルト値があり、ここにソースコード が挿入されます.
これで構成が完了し、起動すると自動的に生成されたテーブルが表示されます.
mysql
mysql-connector-java
5.1.46
runtime
org.springframework.boot
spring-boot-starter-data-jpa
(ここではmysqlドライバパッケージのバージョンに注意する、java.sql.S c u n g o n T r a n s i n t ConnectionException:CLIENT_PLUGIN_AUTH is requiredを引き起こす可能性がある)2、resourcesフォルダの下にアプリケーションを作成する.ymlファイル
spring:
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/******
username: ******
password: ******
jpa:
hibernate:
ddl-auto: update
show-sql: true
ddl-auto:create---- , ,
ddl-auto:create-drop----
ddl-auto:update---- , , ,
ddl-auto:validate---- ,
三、エンティティークラスの作成(エンティティークラスがcom.exampleでエンティティークラスがcom.example.pojoであるように、エンティティークラスを起動クラスパッケージの下に構築する必要があることを覚えておいてください)、ここにエンティティークラスコードを貼り付けます
import org.hibernate.annotations.GenericGenerator;
import javax.persistence.*;
import java.io.Serializable;
@Entity
@Table(name="t_user")
public class User implements Serializable {
private static final long serialVersionUID = -561208975481652974L;
@Id
@GenericGenerator(name = "idGenerator",strategy = "uuid")
@GeneratedValue(generator = "idGenerator")
private String id;
@Column(length = 32)
private String username;
@Column(length = 32)
private String password;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
エンティティークラスの説明:
package javax.persistence;
public enum GenerationType {
TABLE,// 。
SEQUENCE,// , 。
IDENTITY,// ( )
AUTO;//
private GenerationType() {
}
}
これで構成が完了し、起動すると自動的に生成されたテーブルが表示されます.