Spring-data-jpa依賴於Hibernate,目的在於使數據訪問更加簡單java
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency>
server.port=8088 ##### #配置數據源,依次爲地址、用戶名、密碼、驅動、最大鏈接數 ##### spring.datasource.url= jdbc:mysql://localhost:3306/test spring.datasource.username=root spring.datasource.password=123456 spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.datasource.tomcat.max-active=20 ###### ####配置JPA ####從上往下依次數據源mysql、顯示ddl語句、自動執行ddl語句(更新、建立或者銷燬、建立) ####最後兩句表示自動在數據庫建立實體的表 ###### spring.jpa.database=mysql spring.jpa.show-sql=true spring.jpa.hibernate.ddl-auto=update #spring.jpa.database-platform=org.hibernate.dialect.MySQL5Dialect spring.jpa.hibernate.naming_strategy=org.hibernate.cfg.ImprovedNamingStrategy #spring.jpa.database=org.hibernate.dialect.MySQL5InnoDBDialect spring.jpa.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
package com.dataaccess.model; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; /** * Created by Administrator on 2017/9/14. */ /* * 使用@Entity實現實體的持久化,JPA檢測到實體中有該註解時,會在數據庫中生成對應的表 * 使用@Id指定表的主鍵 * 使用@GeneratedValue(strategy = GenerationType.AUTO)指定主鍵自動生成,mysql默認自增加 */ @Entity public class person { @Id @GeneratedValue(strategy = GenerationType.AUTO) private int id; private String name; private int age; public int getId(){ return id; } public void setId(int id){ this.id=id; } public int getAge(){ return age; } public void setAge(int age){ this.age=age; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
package com.dataaccess.dao; import org.springframework.data.repository.CrudRepository; import com.dataaccess.model.person; /** * Created by Administrator on 2017/9/14. */ public interface PersonRepository extends CrudRepository <person,Integer> { }
package com.dataaccess.service; import com.dataaccess.dao.PersonRepository; import org.springframework.stereotype.Service; import com.dataaccess.model.person; import javax.annotation.Resource; import javax.transaction.Transactional; import java.util.List; /** * Created by Administrator on 2017/9/14. */ /* *@Transactional進行事物的綁定 */ @Service public class PersonService { @Resource private PersonRepository personRepository; @Transactional public void save( person p){ personRepository.save(p); } @Transactional public void delete( int id){ personRepository.delete(id); } @Transactional public Iterable<person> getAll(){ return personRepository.findAll(); } }
package com.dataaccess.controller; import com.dataaccess.model.person; import com.dataaccess.service.PersonService; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import java.util.List; /** * Created by Administrator on 2017/9/14. */ @RestController @RequestMapping("/index") public class HelloController { @Resource private PersonService personService; @RequestMapping("/save") public String save(){ person p = new person(); p.setAge(21); p.setName("DLP"); personService.save(p); return "存入用戶成功"; } @RequestMapping("/delete") public String delete(){ personService.delete(1); return "刪除編號爲1的用戶"; } @RequestMapping("/findAll") public Iterable<person> getAll(){ return personService.getAll(); } }