SpringBoot 实现的 JPA 封装了 JPA 的特性, Repository 是封装了 jpa 的特性 (我是这么理解的)
1 在 pom.xml 引入 mysql, spring-data-jpa 依赖
2. 在 src/main/resource / 下新建 applicatoin.properties 配置文件, 并配置数据库连接
3. 在 application.properties 配置 jpa 配置信息
4. 编写实例
热部署 pom.xml 配置
- <!-- spring boot devtools 热部署 -->
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-devtools</artifactId>
- <optional>true</optional>
- <scope>true</scope>
- </dependency>
- <!-- spring boot devtools 的 plugin -->
- <plugin>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-maven-plugin</artifactId>
- <configuration>
- <!--fork : 如果没有该项配置, 呢个 devtools 不会起作用, 即应用不会 restart -->
- <fork>true</fork>
- </configuration>
- </plugin>
1. 加入依赖
- <!-- mysql 数据库驱动依赖 -->
- <dependency>
- <groupId>mysql</groupId>
- <artifactId>mysql-connector-java</artifactId>
- </dependency>
- <!-- 添加 spring-boot-data-jpa 依赖 -->
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-data-jpa</artifactId>
- </dependency>
2.applicaton.properties 配置 mysql
- ########################################################
- ###datasource mysql
- ########################################################
- spring.datasource.url = jdbc:mysql://localhost:3306/spring?useUnicode=true&characterEncoding=utf8
- spring.datasource.username = root
- spring.datasource.password =
- spring.datasource.driverClassName = com.mysql.jdbc.Driver
- spring.datasource.max-active=20
- spring.datasource.max-idle=8
- spring.datasource.min-idle=8
- spring.datasource.initial-size=10
3. 配置 jpa
- ########################################################
- ### Java Persistence Api
- ########################################################
- # Specify the DBMS
- spring.jpa.database = MYSQL
- # Show or not log for each sql query
- spring.jpa.show-sql = true
- # Hibernate ddl auto (create, create-drop, update)
- spring.jpa.hibernate.ddl-auto = update
- # Naming strategy
- #[org.hibernate.cfg.ImprovedNamingStrategy #org.hibernate.cfg.DefaultNamingStrategy]
- spring.jpa.hibernate.naming-strategy = org.hibernate.cfg.ImprovedNamingStrategy
- # stripped before adding them to the entity manager)
- spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect
4. 测试实例:
Spring Boot JPA 总结
---------------------
1, 需要添加相应的依赖包;
2, 需要在 application.properties 文件添加配置信息;
3, 需要创建一个实体类, 比如 Cat;
4, 需要创建一个接口继承 CrudRepository;
5, 需要创建一个 Service;
6, 需要创建一个 Controller;
7, 代码测试;
- cat.java
- package com.muyang.boot1.demo.bean;
- import javax.persistence.Entity;
- import javax.persistence.GeneratedValue;
- import javax.persistence.GenerationType;
- import javax.persistence.Id;
- /**
- * 创建一个实体类
- * 如何持久化
- * 1. 使用 @Entity 进行实体类的持久化操作, 当 JPA 检测到我们的实体类中有 @Entity 的 注解的时候
- * 会在数据库中生成对应的表结构
- * 2. 如何制定主键及生成策略
- * 使用 @id 来生成主键
- * @author Administrator
- *
- */
- @Entity
- public class Cat {
- /**
- * 使用 @Id 生成主键
- * 受用 @GeneratedValue(strategy=GenerationType.AUTO) 指定主键测策略, 即 mysql 的自增 Id
- */
- @Id @GeneratedValue(strategy=GenerationType.AUTO)
- private int id;
- private String catName;
- private String catAge;
- public int getId() {
- return id;
- }
- public void setId(int id) {
- this.id = id;
- }
- public String getCatName() {
- return catName;
- }
- public void setCatName(String catName) {
- this.catName = catName;
- }
- public String getCatAge() {
- return catAge;
- }
- public void setCatAge(String catAge) {
- this.catAge = catAge;
- }
- }
- catRepository.java
- package com.muyang.boot1.demo.repository;
- import org.springframework.data.repository.CrudRepository;
- import com.muyang.boot1.demo.bean.Cat;
- public interface CatRepository extends CrudRepository<Cat, Integer> {
- }
catService.java 增删改查
- package com.muyang.boot1.demo.service;
- import javax.annotation.Resource;
- import org.springframework.stereotype.Service;
- import com.muyang.boot1.demo.bean.Cat;
- import com.muyang.boot1.demo.repository.CatRepository;
- @Service
- public class CatService {
- @Resource
- private CatRepository catRepository;
- /**
- *
- * update, save, delete 操作
- */
- // 保存数据
- public void save(Cat cat)
- {
- catRepository.save(cat);
- }
- // 删除数据
- public void delete(int id)
- {
- catRepository.delete(id);
- }
- // 查询
- public Iterable<Cat> getAll() {
- return catRepository.findAll();
- }
- }
catController.java 控制器
- package com.muyang.boot1.controller;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RestController;
- import com.muyang.boot1.demo.bean.Cat;
- import com.muyang.boot1.demo.service.CatService;
- @RestController
- @RequestMapping("/cat")
- public class CatController {
- @Autowired
- private CatService catService;
- // 增加
- @RequestMapping(value="/add")
- public String save()
- {
- Cat cat = new Cat();
- cat.setCatName("大五");
- cat.setCatAge("22");
- catService.save(cat);
- return "save ok.";
- }
- @RequestMapping("/del")
- public String delete(int id)
- {
- catService.delete(id);
- return "delete ok.";
- }
- @RequestMapping(value="/getAll", produces="application/json; charset=utf-8")
- public Iterable<Cat> getAll()
- {
- return catService.getAll();
- }
- }
- http://localhost:8080/cat/add
- http://localhost:8080/cat/getAll
来源: http://www.bubuko.com/infodetail-2685303.html