spring data jpa筆記

  • 依賴
 <!-- Spring Data JPA 依賴 :: 數據持久層框架 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
  • 實體類
package demo.springboot.domain;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import java.io.Serializable;

/**
 * Book 實體類
 *
 * Created by bysocket on 30/09/2017.
 */
@Entity
public class Book implements Serializable {

    /**
     * 編號
     */
    @Id
    @GeneratedValue
    private Long id;

    /**
     * 書名
     */
    private String name;

    /**
     * 作者
     */
    private String writer;

    /**
     * 簡介
     */
    private String introduction;

    public Long getId() {
        return id;
    }

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

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getWriter() {
        return writer;
    }

    public void setWriter(String writer) {
        this.writer = writer;
    }

    public String getIntroduction() {
        return introduction;
    }

    public void setIntroduction(String introduction) {
        this.introduction = introduction;
    }
}

  • 持久層操作
public interface BookRepository extends JpaRepository<Book, Long> {

}


//更多方法
public interface UserRepository extends JpaRepository<User,Long> {
    Page<User> findByNameStartsWith(String name, Pageable pageable);
}

//自定義
@Query("update User u set u.age = ?1 where u.name = ?2")
@Modifying
Integer updateAgeByName(int age, String name);

@Query("select u.name from User u where u.id=?1")
String getNameFromId(Long id);
  • 定義一個接口
//更復雜的操作
public interface CustomUserRepository {
    String getNameById(Long id);
}
  • 實現這個接口
@Repository
public class CustomUserRepositoryImpl implements CustomUserRepository {

    @Autowired
    private JdbcTemplate jdbcTemplate;

    @Override
    public String getNameById(Long id) {
        String sql="select name from USER where id=?1";
        RowMapper<User> rowMapper=new BeanPropertyRowMapper<>(User.class);
        User user= jdbcTemplate.queryForObject(sql, rowMapper,id);
        System.out.println(user);
        return user.getName();
    }
}


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