依赖:
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.5</version>
</dependency>
DAO层:
entity层:Student.java
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class Student implements Serializable {
private static final long serialVersionUID = 1L;
private Integer id;
private Integer age;
private String name;
}
mapper层:StudentMapper
public interface StudentMapper extends BaseMapper<Student> {
//自定义sql查询全表
@Select("select * from student ")
List<Student> queryGrade();
//条件查询
@Select("select * from student where id=#{id}")
Student queryOne(@Param("student") int id);
//输入名字增加一条数据
@Insert("INSERT INTO student(NAME,age) VALUES(#{name},#{age})")
int insertByName(@Param("name") String name,@Param("age") int age);
}
service层:service.java
//自定义sql查询全表
public List<Student> selectAll(){
return studentMapper.queryGrade();
}
//条件查询
public Student queryOne(int id){
return studentMapper.queryOne(id);
}
//输入名字与年龄增加一条数据
public int insertByName(String name,int age){
return studentMapper.insertByName(name,age);
}
Controller层:MainApplication.java
@RestController
@RequestMapping("/MyService")
public class MyServiceController {
@Resource//注入
TestService testService;
//【get】自定义sql查询全表
@GetMapping("/selectAll")
public List<Student> selectAll()
{
Logger.info("test", "test selectAll");
return testService.selectAll();
}
//【get】条件查询
@GetMapping("/queryOne")
public Student queryOne(@RequestParam("id")int id)
{
Logger.info("test", "test queryOne");
return testService.queryOne(id);
}
//【get】输入名字增加一条数据
@GetMapping("/insertByName")
public int insertByName(@RequestParam("name")String name,@RequestParam("age")int age)
{
Logger.info("test", "test insertByName");
return testService.insertByName(name,age);
}
}
总结:
开发流程如上图,从最顶端mapper中构造sql语句到service层中调用方法,到最后controller中使用