(1.)基本理论
JPA是Java Persistence API的简称,中文名Java持久层API,是JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。
(1. )实现数据的增删改查
1.在pom文件中引入需要的依赖
<!-- 引入mysql需要的依赖 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!-- 引入spring data jpa需要的依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
2.创建resource folder src/main/resource 文件夹
3.创建并配置application.properties文件
spring.datasource.url=jdbc:mysql://localhost:3306/test
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driverClassName=com.mysql.jdbc.Driver
spring.datasource.max-active=20
spring.datasource.max-idle=5
spring.datasource.min-idle=5
spring.datasource.initial-size=10
spring.jpa.database=MYSQL
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=update
spring.jpa.hibernate.naming-strategy=org.hibernate.cfg.ImprovedNamingStrategy
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
4.创建Grade实体类
package com.qzy.entity;
import javax.persistence.*;
@Entity
public class Grade {
@Id
@GeneratedValue(strategy= GenerationType.AUTO)
private Integer grade_id;
private String grade_name;
public Integer getGrade_id() {
return grade_id;
}
public void setGrade_id(Integer grade_id) {
this.grade_id = grade_id;
}
public String getGrade_name() {
return grade_name;
}
public void setGrade_name(String grade_name) {
this.grade_name = grade_name;
}
}
5.创建dao层
package com.qzy.dao;
import com.qzy.entity.Grade;
import org.springframework.data.repository.CrudRepository;
import org.springframework.stereotype.Repository;
/**
* CrudRepository<实体,主键数据类型>
*/
@Repository
public interface IGradeMapper extends CrudRepository<Grade,Integer> {
}
6.创建service层
package com.qzy.service;
import com.qzy.entity.Grade;
public interface IGradeService {
public Grade insertGrade(Grade grade);
public Grade updateGrade(Grade grade);
public void deleteGrade(Integer id);
public Iterable<Grade> getAll();
}
7.创建serviceimpl层
package com.qzy.service.impl;
import com.qzy.dao.IGradeMapper;
import com.qzy.entity.Grade;
import com.qzy.service.IGradeService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@Service("iGradeService")
public class IGradeServcieImpl implements IGradeService {
@Resource
private IGradeMapper iGradeMapper;
@Override
public Grade insertGrade(Grade grade) {
return iGradeMapper.save(grade);
}
@Override
public Grade updateGrade(Grade grade) {
return iGradeMapper.save(grade);
}
@Override
public void deleteGrade(Integer id) {
iGradeMapper.delete(id);
}
@Override
public Iterable<Grade> getAll() {
return iGradeMapper.findAll();
}
}
8.创建controller层
package com.qzy.controller;
import com.qzy.entity.Grade;
import com.qzy.service.IGradeService;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
@RestController
@RequestMapping("/IGradeController")
public class IGradeController {
@Resource
private IGradeService iGradeService;
//新增数据
@RequestMapping("/insertGrade")
public Grade insertGrade(){
Grade grade=new Grade();
grade.setGrade_name("S1");
return iGradeService.insertGrade(grade);
}
@RequestMapping("/updateGrade")
public Grade updateGrade(){
Grade grade=new Grade();
grade.setGrade_id(1);
grade.setGrade_name("S2");
return iGradeService.updateGrade(grade);
}
@RequestMapping("/deleteGrade")
public void deleteGrade(){
iGradeService.deleteGrade(1);
}
@RequestMapping("/getAllGrade")
public Iterable<Grade> getAllGrade(){
return iGradeService.getAll();
}
}
9.测试代码 观察效果