JPA简述:
用来统一持久层(访问数据库)操作的解决方案
环境
maven依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
配置文件
spring:
jpa:
hibernate:
ddl-auto: update #update更新或创建表
show-sql: false #控制台显示sql
mvc代码
- model:注意注解的包
import javax.persistence.*;
import java.io.Serializable;
@Entity//告诉jpa这是一个实体类,(和数据库表映射的类)
@Table(name = "jpa_model")//省略此注解,默认表名是JPAModel
public class JPAModel implements Serializable{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)//自增组件
private int id;
@Column(length = 20)
private String nam;
@Column(name = "parent_id")
private int parentId;
// private JPAModel parentJPAModel;
- dao层
import com.czy.springTest1.mvc.model.JPAModel;
import org.springframework.data.jpa.repository.JpaRepository;
public interface JPARepository extends JpaRepository<JPAModel,Integer> {
}
- controller
import com.czy.springTest1.mvc.dao.JPARepository;
import com.czy.springTest1.mvc.model.JPAModel;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class JPAController {
@Autowired
JPARepository jpaRepository;
@GetMapping("/jap/{id}")
public JPAModel find(@PathVariable("id") Integer id){
return jpaRepository.findById(id).get();
}
@GetMapping("/jap")
public JPAModel insert(JPAModel jpaModel){
return jpaRepository.save(jpaModel);
}
}
项目启动成功后:数据库生成两个表:
insert一条数据:
根据id查询: