Spring Boot統合JPAのコード例

6261 ワード

本論文ではSprigBoot統合JPAの例示的なコードを紹介します。
1.新たなmavenプロジェクトを作成する

2.必要な依存性を追加する

  <!--springboot     -->
  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.5.9.RELEASE</version>
  </parent>

  <dependencies>
    <!--  springmvc     ,springboot     -->
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <!--jpa-->
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
    <!--mysql  -->
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
    </dependency>
  </dependencies>

3.新しいspringboot起動類

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class Application {
  public static void main(String[] args) {
    SpringApplication.run(Application.class,args);
  }
}
4.resourceとディレクトリの下に新しいappication.propertiesを作成します。

#  /        
spring.jpa.hibernate.ddl-auto=update
#     
spring.datasource.url=jdbc:mysql://localhost:3306/qian?useUnicode=true&characterEncoding=utf-8
#      
spring.datasource.username=root
#     
spring.datasource.password=123
  • udate:Hibernateは与えられたEntity構造に基づいてデータベースを変更します。
  • create:毎回データベースを作成します。閉じる時は
  • を削除しません。
  • none:mysqlのデフォルト設定は、データ構造を変更しない
  • create-drop:データベースを作成しますが、session Factoryがオフになると
  • は削除されます。
    5.新規エンティティクラスUser
    この時はすでにspringbootを起動してもいいですが、データテーブルはまだ設定されていません。

    まず新しいuser.javaを作成します
    
    import org.hibernate.annotations.GenericGenerator;
    import javax.persistence.Entity;
    import javax.persistence.GeneratedValue;
    import javax.persistence.Id;
    /**
     * Created by Andy on 2018/1/20.
     */
    //              
    @Entity
    public class User {
    //      id
      @Id
    //             ,name ”system-uuid”,  strategy ”uuid”。
      @GenericGenerator(name = "system-uuid", strategy ="uuid")
    //   generator             。
      @GeneratedValue(generator = "system-uuid")
      private String id;
      private String name;
      private Integer age;
      private Boolean sex;
    
      public String getId() {
        return id;
      }
    
      public void setId(String id) {
        this.id = id;
      }
    
      public String getName() {
        return name;
      }
    
      public void setName(String name) {
        this.name = name;
      }
    
      public Integer getAge() {
        return age;
      }
    
      public void setAge(Integer age) {
        this.age = age;
      }
    
      public Boolean getSex() {
        return sex;
      }
    
      public void setSex(Boolean sex) {
        this.sex = sex;
      }
    }
    この時にプロジェクトを起動すると、指定された位置にuserデータテーブルが作成されます。

    6.CRUDを実現する
    Crude Repositoryは、一般的な添削の方法を提供するインターフェースです。spring内部から提供されます。私達は呼び出しだけでいいです。
    
    @NoRepositoryBean
    public interface CrudRepository<T, ID extends Serializable> extends Repository<T, ID> {
      <S extends T> S save(S var1);
      <S extends T> Iterable<S> save(Iterable<S> var1);
      T findOne(ID var1);
      boolean exists(ID var1);
      Iterable<T> findAll();
      Iterable<T> findAll(Iterable<ID> var1);
      long count();
      void delete(ID var1);
      void delete(T var1);
      void delete(Iterable<? extends T> var1);
      void deleteAll();
    }
    
    
    新しいUserRepository.java
    
    public interface UserRepository extends CrudRepository<User, String> {
    
    }
    
    7.controller制御を実現する
    新しいUserController.java
    
    @RestController
    public class UserController {
      @Autowired
      private UserRepository userRepository;
    
      @RequestMapping("/add")
      public User add(String name){
        User user = new User();
        user.setName(name);
        return userRepository.save(user);
      }
    
      @RequestMapping("/list")
      public Iterable<User> list(){
        Iterable<User> all = userRepository.findAll();
        return all;
      }
    }
    
    
    以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。