Spring Data Jpa 簡單新增

創建一個 @Entity

src/main/java/example/example1/User.java:

package com.example.example1;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
@Entity 
@Table(name = "sys_user")
//Springboot2.2.1集成的Spring data jpa比較新,需要加上如下配置
@JsonIgnoreProperties({"hibernateLazyInitializer","handler"})
public class User {
   @Id
   @GeneratedValue(strategy=GenerationType.AUTO)
   // @GeneratedValue
   private Long id;

   @Column
   private String name;

   @Column(name = "email",length = 64) //這是和數據表對應的一個列
   private String email;

   public Long getId() {
      return id;
   }
   public void setId(Long id) {
      this.id = id;
   }

   @Column(length = 20)
   public String getName() {
      return name;
   }
   public void setName(String name) {
      this.name = name;
   }
   public String getEmail() {
      return email;
   }
   public void setEmail(String email) {
      this.email = email;
   }
}


第五步:創建一個 Repository

src/main/java/example/example1/UserRepository.java:

package com.example.example1;
import org.springframework.data.repository.CrudRepository;

// public interface UserRepository extends JpaRepository<User,Integer> {
public interface UserRepository extends CrudRepository<User, Long> {

}

CrudRepository 接口

CrudRepository 接口提供了最基本的對實體類的添刪改查操作

PagingAndSortingRepository接口


該接口提供了分頁與排序功能
Iterable findAll(Sort sort); //排序
Page findAll(Pageable pageable); //分頁查詢(含排序功能)

JpaRepository接口


該接口提供了JPA的相關功能
List findAll(); //查找所有實體
List findAll(Sort sort); //排序、查找所有實體
List save(Iterable<? extends T> entities);//保存集合
void flush();//執行緩存與數據庫同步
T saveAndFlush(T entity);//強制執行持久化
void deleteInBatch(Iterable entities);//刪除一個實體集合

JpaSpecificationExecutor接口


不屬於Repository體系,實現一組 JPA Criteria 查詢相關的方法
注意也可以自定義Repository的方法 

 

 

@Query(value="select * from tbl_user where name like %?1" ,nativeQuery=true)
 List<User > findSele(String name);


 

 

例子:

比如:定義下面這麼一個方法,就可以在外界使用了。

 


Employee findByName(String name);

也就是說,上面的方法會被解析成SQL語句:

select * from Employee where name = ?

是不是覺得很方便!!!!

 

 


第六步:創建一個 controller

package com.example.example1;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
@RequestMapping(path = "/demo")
public class UserController {
   @Autowired
   private UserRepository userRepository;
   @GetMapping(path = "/add")
   public void addNewUser(@RequestParam String name, @RequestParam String email) {
      User n = new User();
      n.setName(name);
      n.setEmail(email);
      userRepository.save(n);
   }
   @GetMapping(path = "/all")
   @ResponseBody
   public Iterable<User> getAllUsers() {
      return userRepository.findAll();
   }
}


第七步:直接運行 Example1Application 的 main() 函數即可
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章