whbing 2019-12-12
JPA是Java Persistence API的简称,中文名Java持久层API,是JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。
JPA可以极大的简化JPA的写法,可以爱几乎不用写实现的情况下,实现对数据库的访问操作。除了CRUD外,还包括分页,排序等一些常用的功能,
首先我们需要清除的是Spring data是一个开源框架,在这个框架中Spring Data JPA只是这个框架中的一个模块,所以名称才叫Spring Data JPA。如果单独使用JPA开发,你会发现这个代码量和使用JDBC开发一样有点烦人,所以Spring Data JPA的出现就是为了简化JPA的写法,让你只需要编写一个接口继承一个类就能实现CRUD操作了。
<!-- 引入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>
#Spring Data JPA配置 spring.jpa.hibernate.ddl-auto=update spring.jpa.show-sql=true spring.jackson.serialization.indent-output=true spring.jpa.database=mysql
package com.wn.springbootproject01.entity; import javax.persistence.*; @Entity @Table(name = "Grade") public class Grade { @Id @GeneratedValue(strategy = GenerationType.AUTO) private Integer grade_id; private String grade_name; public Grade(Integer grade_id, String grade_name) { this.grade_id = grade_id; this.grade_name = grade_name; } public Grade(){ } 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; } }
package com.wn.springbootproject01.dao; import com.wn.springbootproject01.entity.Grade; import org.springframework.data.repository.CrudRepository; import org.springframework.stereotype.Repository; @Repository public interface GradeDao extends CrudRepository<Grade,Integer> { }
package com.wn.springbootproject01.service; import com.wn.springbootproject01.entity.Grade; public interface GradeService { //新增 public Grade getinter(Grade grade); //修改 public Grade getupdate(Grade grade); //删除 public void getdel(Integer id); //查询 public Iterable<Grade> getAll(); }
package com.wn.springbootproject01.service.impl; import com.wn.springbootproject01.dao.GradeDao; import com.wn.springbootproject01.entity.Grade; import com.wn.springbootproject01.service.GradeService; import org.springframework.stereotype.Service; import javax.annotation.Resource; @Service public class GradeServiceImpl implements GradeService { @Resource private GradeDao dao; @Override public Grade getinter(Grade grade) { return dao.save(grade); } @Override public Grade getupdate(Grade grade) { return dao.save(grade); } @Override public void getdel(Integer id) { dao.deleteById(id); } @Override public Iterable<Grade> getAll() { return dao.findAll(); } }
package com.wn.springbootproject01.controller; import com.wn.springbootproject01.entity.Grade; import com.wn.springbootproject01.service.GradeService; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import javax.annotation.Resource; @Controller @RequestMapping("/grade") public class GradeController { //植入dao层对象 @Resource private GradeService service; //新增 @RequestMapping("/getinter") @ResponseBody public Grade getinter(){ Grade grade=new Grade(); grade.setGrade_name("小明"); return service.getinter(grade); } //修改 @RequestMapping("/getupdate") @ResponseBody public Grade getupdate(){ Grade grade=new Grade(); grade.setGrade_id(1); grade.setGrade_name("小红"); return service.getupdate(grade); } //删除 @RequestMapping("/getdel") @ResponseBody public String getdel(){ service.getdel(11); return "success"; } //查询 @RequestMapping("/getAll") @ResponseBody public Iterable<Grade> getAll(){ return service.getAll(); } }
是一个替代hibernate的一个作用于数据库的框架。 这里整合后不需要写一些简单的sql语句。 2、在resources下创建templates文件夹,在其下就可以书写页面了,和HTML的风格相似。