SpringBoot+Jpa实现增删改查以及分页查询
一,项目所用得框架
1,使用工具IDEA
2,使用springboot框架+JPA+Mysql
二,项目的一个总体目录
1,springboot+jpa实现增删改查
里面分为四部分,分别是
controller——->控制层
domain———->实体层
repository——->接口
service————>业务逻辑
三,每一层代码是如何实现的
一,domain
domain层中有几点很重要
1,@Entity
2,@Table(name=”employee”)
表示根据实体类所生成的数据库中的表名
3,@Id
表示id为主键,
4,@GeneratedValue(strategy=GenerationType.AUTO)
表示是主键生成策略,如果加上了这句话,那么注意此时,id的类型一定是Integer类型的,不然程序肯定爆炸
5,@Colum
可写可不写,因为默认将其当做字符串
package com.sudojava.springjpa.domain;
import javax.persistence.*;
@Entity
@Table(name = "employee")
public class Employee {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer id;
@Column
private String name;
@Column
private String address;
@Column
private String photo;
...set和get方法,toString方法,有参和无参构造
}
二,service层
###
包括xxxService:
package com.sudojava.springjpa.service;
import com.sudojava.springjpa.domain.Employee;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
public interface EmployeeService {
Employee saveEmployee(Employee employee);
void deleteEmployee(Integer id);
boolean updateEmployee(Employee employee);
Page<Employee> findAll(Pageable pageable);
Page<Employee> findAllByName(String name,Pageable pageable);
}
1,分别写了增删改查,和分页的方法
2,增的方法:返回实体类对象,参数为实体类对象,因为将新添加的保存到对象中
3,删除:根据id进行删除,所以参数为id,返回值为空
4,修改:返回boolean类型,参数为实体类对象
5,查找:传入参数Pageable
6,根据名字进行分页查询,传入名字的参数和Pageable (String name,Pageable pageable)
包括xxxServiceimpl
package com.sudojava.springjpa.service;
import com.sudojava.springjpa.domain.Employee;
import com.sudojava.springjpa.repository.EmployeeRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service;
import java.util.ResourceBundle;
@Service
public class EmployeeServiceImp implements EmployeeService {
//注入dao