1.引入依赖:
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper-spring-boot-starter</artifactId>
<version>2.0.3</version>
</dependency>
2.接口继承通用Mapper:
public interface BrandMapper extends Mapper<Brand> {
}
3.启动文件中加入扫描的注释
@MapperScan("com.cn.demo1.mapper") //括号内的为 mapper包所在位置

操作完以上步骤就可以使用了。
1、service层可以如下直接写,(切记,别忘了注释@Service)
@Service
public class demoService {
@Autowired
private VideoMapper videoMapper;
public List<Video> findAll(){
return videoMapper.selectAll();
}
public Video findById(int id){
return videoMapper.selectByPrimaryKey(id);
}
public int update(Video video){
return videoMapper.updateByPrimaryKey(video);
}
public int delete(int id){
return videoMapper.deleteByPrimaryKey(id);
}
public int save(Video video){
return videoMapper.insert(video);
}
2、控制层
@RestController
@RequestMapping("/admin/api/v1/video")
public class videoAdminController {
@Autowired
private demoService demoService;
/**
* 根据id删除视频
* @param videoId
* @return
*/
@DeleteMapping("del_by_id")
public Object delById(@RequestParam(value = "video_id",required = true) int videoId){
return demoService.delete(videoId);
}
/**
* 根据id更新视频
* @param video
* @return
*/
@PutMapping("update_by_id")
public Object update(@RequestBody Video video){
return demoService.update(video);
}
/**
* 保存视频
* @param video
* @return
*/
@PostMapping("save")
public Object save(@RequestBody Video video){
return demoService.save(video);
}
}
这样便就成功了。
通用Mapper的查询
1、id 的专用查询方法
public void testSelectId() {
userMapper.selectByPrimaryKey(1L);//id专用查询方法
System.out.println( userMapper.selectByPrimaryKey(1L));
}
2、属性查询
public void testSelectName() {
User user = new User();
user.setName("张三");//哪个属性有值where条件就根据哪个属性生成,id除外
List<User> select = userMapper.select(user);
System.out.println(select);
}
3、属性值唯一查询
public void testSelectOne() {
User user = new User();
user.setUserName("zhangsan");//查询值有多个会报错
System.out.println(userMapper.selectOne(user));
}
4、统计个数
public void testSelectCount() {
System.out.println(userMapper.selectCount(null));//没有查询条件就全查
}
5、插入
public void testInsert() {
User user = new User();
user.setUserName("孙悟空");
user.setName("sunwukong");
user.setAge(500);
user.setId(50L);
user.setPassword("234");
int insert = userMapper.insert(user);
System.out.println(insert);
}
6、selective插入
insertSelective方法:有值才操作,没有值不理会,比上insert方法效率高
7、删除
public void testDelete() {
User user = new User();
user.setUserName("孙悟空");
int delete = userMapper.delete(user);
System.out.println(delete);
}
8、根据id删除,主键的特有方法
public void testDeleteByPrimaryKey() {
userMapper.deleteByPrimaryKey(51L);
}
8、修改
/*
* 指定的属性改变为指定的值,其余的为null
* */
@Test
public void testUpdateByPrimaryKey() {
User user = new User();
user.setId(36L);
user.setUserName("李白");
user.setName("libai");
userMapper.updateByPrimaryKey(user);
}
9、selecttive修改
/*
* 只改变指定的属性,其余属性不变
* */
@Test
public void testUpdatePriimarySelective() {
User user = new User();
user.setId(33L);
user.setUserName("王昭君");
user.setName("wangzhaojun");
user.setUpdated(new Date());
userMapper.updateByPrimaryKeySelective(user);
}
通用Mapper组合查询和排序
1.添加普通条件
/*
* example要表达的含义为???
* 组合的查询条件
* */
@Test
public void testSelectByExample(){
//条件的组合工具
Example example = new Example(User.class);
//条件,一个criteria中可以组合无数个条件,但是这些条件都是and关系
Example.Criteria criteria = example.createCriteria();
criteria.andEqualTo("sex","1");
criteria.andBetween("age",20,30);
List<User> users = userMapper.selectByExample(example);
System.out.println("users = " + users);
}
2.添加or条件的组合查询
@Test
public void testSelectByExampleOr(){
//条件的组合工具
Example example = new Example(User.class);
//条件,一个criteria中可以组合无数个条件,但是这些条件都是and关系
Example.Criteria criteria = example.createCriteria();
criteria.andEqualTo("sex","1");
Example.Criteria criteria1 = example.createCriteria();
criteria1.andLike("name","%李%");
//直接使用example的or方法使得第二个条件和原来的条件组合or关系
example.or(criteria1);
System.out.println(userMapper.selectByExample(example));
}
3.排序
@Test
public void testSelectByExampleOrder(){
//条件的组合工具
Example example = new Example(User.class);
//条件,一个criteria中可以组合无数个条件,但是这些条件都是and关系
Example.Criteria criteria = example.createCriteria();
criteria.andEqualTo("sex","1");
Example.Criteria criteria1 = example.createCriteria();
criteria1.andLike("name","%李%");
//直接使用example的or方法使得第二个条件和原来的条件组合or关系
example.or(criteria1);
//排序
example.setOrderByClause("id DESC");
System.out.println(userMapper.selectByExample(example));
}
网友评论