JPA是java Persistence API簡稱,中文名:java持久層API,JPA是JCP組織發佈的J2EE標準之一 1.創建DataSource連接池對象 1 <dependency> 2 <groupId>org.springframework.boot</groupId> 3 <art ...
JPA是java Persistence API簡稱,中文名:java持久層API,JPA是JCP組織發佈的J2EE標準之一
1.創建DataSource連接池對象
1 <dependency> 2 <groupId>org.springframework.boot</groupId> 3 <artifactId>spring-boot-starter-jdbc</artifactId> 4 </dependency> 5 <!-- 資料庫驅動 --> 6 <dependency> 7 <groupId>com.oracle</groupId> 8 <artifactId>ojdbc6</artifactId> 9 <version>11.2.0.3</version> 10 </dependency>View Code
2.在pom.xml中定義spring-boot-starter-data-jpa
1 <!-- 定義spring-boot-starter-data-jpa --> 2 <dependency> 3 <groupId>org.springframework.boot</groupId> 4 <artifactId>spring-boot-starter-data-jpa</artifactId> 5 </dependency>View Code
3.根據資料庫表定義實體類
1 package cn.xdl.entity; 2 3 import java.io.Serializable; 4 5 import javax.persistence.Column; 6 import javax.persistence.Entity; 7 import javax.persistence.Id; 8 import javax.persistence.Table; 9 10 @Entity 11 @Table(name="EMP") //通常和@Entity配合使用,只能標註在實體的class定義處,表示實體對應的資料庫表的信息 12 public class Emp implements Serializable{ 13 /** 14 * 15 */ 16 private static final long serialVersionUID = 1L; 17 @Id //定義了映射到資料庫表的主鍵的屬性,一個實體只能有一個屬性被映射為主鍵置於getXxxx()前 18 @Column(name="EMPNO") //name表示表的名稱預設地,表名和實體名稱一致,只有在不一致的情況下才需要指定表名 19 private Integer empno; 20 @Column(name="ENAME") 21 private String ename; 22 @Column(name="JOB") 23 private String job; 24 @Column(name="MGR") 25 private int mgr; 26 public Integer getEmpno() { 27 return empno; 28 } 29 public void setEmpno(Integer empno) { 30 this.empno = empno; 31 } 32 public String getEname() { 33 return ename; 34 } 35 public void setEname(String ename) { 36 this.ename = ename; 37 } 38 public String getJob() { 39 return job; 40 } 41 public void setJob(String job) { 42 this.job = job; 43 } 44 public int getMgr() { 45 return mgr; 46 } 47 public void setMgr(int mgr) { 48 this.mgr = mgr; 49 } 50 @Override 51 public String toString() { 52 return "Emp [empno=" + empno + ", ename=" + ename + ", job=" + job + ", mgr=" + mgr + "]"; 53 } 54 }View Code
4.定義Dao介面,繼承JPA功能介面
1 package cn.xdl.jpa; 2 3 import org.springframework.data.jpa.repository.JpaRepository; 4 5 import cn.xdl.entity.Emp; 6 //JpaRepository:JPA資源庫 7 /** 8 * 1.所有繼承該介面的都被spring所管理,改介面作為標識介面,功能就是用來控制domain模型的 9 * 2.Spring Data可以讓我們只定義介面,只要遵循spring data的規範,無需寫實現類。 10 * 11 */ 12 public interface EmpDao extends JpaRepository<Emp, Integer>{ 13 14 }View Code
5.獲取Dao介面對象操作資料庫
1 @SpringBootApplication 2 public class MyBootApplication { 3 public static void main(String[] args) throws SQLException { 4 ApplicationContext ioc = SpringApplication.run(MyBootApplication.class, args); 5 // 自動配置創建DataSource,id名為dataSource 6 DataSource ds = ioc.getBean("dataSource", DataSource.class); 7 System.out.println(ds); 8 System.out.println("================="); 9 System.out.println("================="); 10 System.out.println("================="); 11 EmpDao empDao = ioc.getBean("empDao", EmpDao.class); 12 /** 13 * 遍歷 14 */ 15 List<Emp> empdatas = empDao.findAll(); 16 for (Emp emp : empdatas) { 17 System.out.println(emp); 18 } 19 } 20 }View Code