mybatis 单表操作
***********************
引入 jar 包
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper-spring-boot-starter</artifactId>
<version>2.1.5</version>
</dependency>
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.12</version>
</dependency>
***********************
示例
@RestController
@RequestMapping("/teacher")
public class TeacherController {
@Autowired
private TeacherMapper teacherMapper;
@RequestMapping("/save")
public String save(){
for(int i=0;i<10;i++){
Teacher teacher=new Teacher();
teacher.setName("瓜田李下"+i);
teacher.setAge(i);
teacherMapper.insert(teacher);
}
return "success";
}
*************
分页
@RequestMapping("/get")
public List<Teacher> get(){
PageHelper.startPage(1,2);
return teacherMapper.selectAll();
}
@RequestMapping("/get2")
public List<Teacher> get2(){
RowBounds rowBounds=new RowBounds(1,4);
List<Teacher> list=teacherMapper.selectByRowBounds(null,rowBounds);
System.out.println(rowBounds.getOffset()+" "+rowBounds.getLimit());
return list;
}
@RequestMapping("/get3")
public List<Teacher> get3(){
PageRowBounds rowBounds=new PageRowBounds(1,3);
List<Teacher> list= teacherMapper.selectByExampleAndRowBounds(null,rowBounds);
System.out.println("总条数为:"+rowBounds.getTotal()+
"\n页码: "+rowBounds.getOffset()+
"\n本页数:"+rowBounds.getLimit());
return list;
}
*************
排序
@RequestMapping("/get4")
public List<Teacher> get4(){
Example example=new Example(Teacher.class);
example.orderBy("name").asc();
return teacherMapper.selectByExample(example);
}
*************
查询部分字段
@RequestMapping("/get5")
public List<Teacher> get5(){
Example example=new Example(Teacher.class);
example.selectProperties("id","name");
return teacherMapper.selectByExample(example);
}
*************
悲观锁、对查询字段去重
@RequestMapping("/get6")
public List<Teacher> get6(){
Example example=new Example(Teacher.class);
example.setForUpdate(true);
example.setDistinct(true);
example.createCriteria().andLike("name","瓜田李下%");
return teacherMapper.selectByExample(example);
}
*************
部分查询字段可能为null,动态查询
@RequestMapping("/get8")
public List<Teacher> get8(String name,Integer age){
Example example=new Example(Teacher.class);
Example.Criteria c1=example.createCriteria();
if(name!=null){
c1.andLike("name",name+"%");
}
if(age!=null) {
c1.orEqualTo("age",age);
}
return teacherMapper.selectByExample(example);
}
}