JpaRepository继承自PagingAndSortingRepository接口,JpaRepository基于JPA的Repository接口,极大减少了JPA作为数据访问的代码,JpaRepository是实现Spring Data JPA技术访问数据库的关键接口。
示例:简单条件查询(通过eclipse软件实现)
选择基本依赖

配置数据库
#spring配置 spring : #配置数据 datasource : url : jdbc:mysql://127.0.0.1:3306/zhuangzi?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai username : root password : root driver-class-name : com.mysql.cj.jdbc.Driver #配置视图 mvc : view : prefix : /WEB-INF/views/ suffix : .jsp resources : static-locations : classpath:/static/, file:F:/java/ #JPA控制台打印sql jpa: show-sql: true
注意:
com.mysql.jdbc.Driver 是 mysql5的jdbc驱动
com.mysql.cj.jdbc.Driver 是 mysql6的jdbc驱动
需要注意的是com.mysql.cj.jdbc.Driver是要配置时区的,这里配置为 Asia/Shanghai
定义实体类
里面的注解看这里
package com.yt.entity;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
@Entity
public class Student {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY )
private int id;
@Column(name = "names", unique = false, nullable = true, length = 50)
private String names;
@Column(name = "email", length = 30)
private String email;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getNames() {
return names;
}
public void setNames(String names) {
this.names = names;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}定义Repository接口
package com.yt.repository;
import org.springframework.data.jpa.repository.JpaRepository;
import com.yt.entity.Student;
public interface StudentRepository extends JpaRepository<Student,Integer>{
}实现service层
StuService.java 定义了基本的增删改查接口
package com.yt.service;
import com.yt.entity.Student;
public interface StuService {
Student saveStudent(Student stu);
void deleteStudent(Student stu);
void deleteStudent(int id);
Student updateStudent(Student stu);
Student findStudent(int id);
}StuServiceImpl.java StuService接口实现类
package com.yt.service;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.yt.entity.Student;
import com.yt.repository.StudentRepository;
@Service
public class StuServiceImpl implements StuService{
@Autowired
private StudentRepository stuRepository;
@Override
public Student saveStudent(Student stu) {
Student stu1 = stuRepository.save(stu);
return stu1;
}
@Override
public void deleteStudent(Student stu) {
stuRepository.delete(stu);
}
@Override
public void deleteStudent(int id) {
stuRepository.deleteById(id);
}
@Override
public Student updateStudent(Student stu) {
return stuRepository.save(stu);
}
@Override
public Student findStudent(int id) {
return stuRepository.findById(id).get();
}
}实现控制器层
package com.yt.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.yt.entity.Student;
import com.yt.service.StuServiceImpl;
@RestController
@RequestMapping(value="stu")
public class StuController {
@Autowired
private StuServiceImpl stuSer;
@GetMapping("add")
private Student addStu(String names, String email) {
Student s = new Student();
s.setNames(names);
s.setEmail(email);
return stuSer.saveStudent(s);
}
@GetMapping("del")
private String delStu(Integer id) {
stuSer.deleteStudent(id);
return "success";
}
@GetMapping("update")
private Student updateStu(Integer id, String names,String email) {
Student s = new Student();
s.setId(id);
s.setNames(names);
s.setEmail(email);
stuSer.updateStudent(s);
return s;
}
@GetMapping("find.html")
private Student findStu(int id) {
return stuSer.findStudent(id);
}
}运行
打开浏览器,依次访问下面链接
新增
http://localhost:8080/stu/add?names=zhuangzi&email=123@qq.com
新增Stu用户 names为zhuangzi,email为:123@qq.com
修改
http://localhost:8080/stu/add?names=zhuangzi123&email=123456@qq.com&id=1
将Id为1的用户names为zhuangzi123,email为123456@qq.com
删除
http://localhost:8080/stu/del?id=1
删除id为1的学生
查询
http://localhost:8080/student/find?id=1
查询Id为1的学生
