问题1
1、仅仅使用controller类文件与mapper接口实现basemapp,这俩文件就可以实现增删改查吗
2、如果可以使用那为什么中间还要去搭建service层呢
问题2
1、使用service有啥影响或者好处吗
2、如果的去使用service层呢
解决问题一
问题一解决过程
CeshiController类文件
@RestController
public class CeshiController {
@Autowired
StudentMapper studentMapper;
@GetMapping("/xiaonan1")
public void xiaonan1(){
Student student=new Student(3,"3",3);
studentMapper.insert(student);
}
}
StudenMapper接口文件
@Mapper
public interface StudentMapper extends BaseMapper<Student> {
}
Studen的实体类文件
@Data
@AllArgsConstructor
public class Student {
int s_id;
String name;
int age;
}
结果是肯定的,当然可以执行,并且实现简单的更删改查!,其实写到这里我也就迷糊了,既然这样可以,那为什么还需要弄service层呢,下来就继续下面的话题,用service层有什么好处
解决问题二
问题二解决过程
CeshiController类文件
@RestController
public class CeshiController {
@Autowired
TeacherMapper teacherMapper;
@Autowired
TecherService techerService;
@GetMapping("/xiaonan2")
public void xiaonan2(){
Teacher teacher=new Teacher(111,"1");
teacherMapper.insert(teacher);
}
@GetMapping("/xiaonan3")
public void xiaonan3(){
Teacher teacher=techerService.xiaonaninssert();
techerService.save(teacher);
}
}
Teacher实体类文件
@AllArgsConstructor
@Data
public class Teacher
{
int t_id;
String name;
}
Teacher的mapper接口
@Mapper
public interface TeacherMapper extends BaseMapper<Teacher> {
}
Teacher的service接口
public interface TecherService extends IService<Teacher> {
Teacher xiaonaninssert();
}
Teacher的service接口实现
public interface TecherService extends IService<Teacher> {
@Service
public class TeacherServiceImpl extends ServiceImpl<TeacherMapper, Teacher> implements TecherService {
@Override
public Teacher xiaonaninssert() {
Teacher teacher=new Teacher(333,"1111");
return teacher;
}
}
}
问题二
1、解决问题二的时候,很明显的发现我在测试类里面用俩种方法都测试了,答案都是肯定的,都可以达到实现目的,但是service对象没有insert方法,有save方法,mapper对象有insert方法但没有insert方法
2、其实到这里的时候我慢慢明白了,单纯的去完成增删改查仅仅一个mapper是可以实现增删改查的,但是在企业上班仅仅的mapper里面的方法是远远不够的,这也就是为什么要使用service了,一方是可以增加所需要的方法,另外一方面mapper里面有的方法,service也有,并且也完善了。