Spring Data JPA を使う
Spring bootでSpring Data JPAを使うには、pom.xmlに以下を追加します。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
JpaRepositoryを継承したインタフェースクラスにはCRUD操作のfindOne,findAll,save,deleteメソッドが用意されています。
以下、リポジトリクラスです。
package com.web.repository;
import java.util.List;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Repository;
import com.web.domain.Customer;
@Repository
public interface CustomerRepository extends JpaRepository<Customer,Integer>{
}
Customerクラスは以下のようにします。
package com.web.domain;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Entity
@Table(name="tbl_customer")
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Customer{
@Id
@GeneratedValue
private Integer id;
@Column(nullable = false)
private String firstname;
@Column(nullable = false)
private String lastname;
@Column(nullable = false)
private String age;
}
@EntityでJPAのエンティティであることを示しています。
@Tableでテーブル名を指定しています。
@Idでプライマリキーを指定しています。
@GeneratedValueで自動採番されることを示しています。
@Columnでカラムに対して制約をつけています。ここではnot null制約を付けています。
@GeneratedValueを指定している場合は、DB側でauto incrementを指定していないと「The database returned no natively generated identity value;」とエラーが発生します。
エントリポイント配下のようにするだけでインサート文が発行されます。
package com.web;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.context.annotation.ComponentScan;
import com.web.domain.Customer;
import com.web.repository.CustomerRepository;
@EnableAutoConfiguration
@ComponentScan
public class App implements CommandLineRunner{
@Autowired
CustomerRepository cr;
@Override
public void run(String... strs){
Customer customer = cr.save(new Customer(null,"aida","mitsuo","18"));
}
public static void main( String[] args ){
SpringApplication.run(App.class, args);
}
}
KHI入社して退社。今はCONFRAGEで正社員です。関西で140-170/80~120万から受け付けております^^
得意技はJS(ES6),Java,AWSの大体のリソースです
コメントはやさしくお願いいたします^^
座右の銘は、「狭き門より入れ」「願わくは、我に七難八苦を与えたまえ」です^^
コメント