1. 程式人生 > >SpringBoot整合SpringData-JPA

SpringBoot整合SpringData-JPA

1、依賴新增

// 新增spring data jpa依賴
	compile('org.springframework.boot:spring-boot-starter-data-jpa')
	// 新增mysql驅動
	compile('mysql:mysql-connector-java:6.0.5')
	// 執行時內嵌資料庫
	runtime('com.h2database:h2:1.4.193')

2、配置資料來源

spring.datasource.driverClassName=com.mysql.jdbc.Driver
#spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/blog?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=

#啟用h2控制檯
#spring.h2.console.enabled=true

#JPA
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=create-drop

3、重點在編碼CRUD介面

①、實體JPA化

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;

/**
 * User 實體
 * @author zemel
 *
 */
@Entity
public class User {
	
	@Id
	@GeneratedValue
	private Long id; //唯一標識
	
	private String name; //名稱
	
	private String email;
	
	protected User(){ // 防止直接使用
		
	}
	
	public User(Long id, String name, String email){
		this.id = id;
		this.name = name;
		this.email = email;
	}

	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 getEmail() {
		return email;
	}

	public void setEmail(String email) {
		this.email = email;
	}

	@Override
	public String toString() {
		String.format("User [id=%d]", id);
		return "User [id=" + id + ", name=" + name + ", email=" + email + "]";
	}

②、Repository介面

import org.springframework.data.repository.CrudRepository;

import com.example.demo.domain.User;

/**
 * UserRepository 介面
 * 
 * @author Administrator
 *
 */
public interface UserRepository extends CrudRepository<User, Long>{

	
	
}