import tk.mybatis.mapper.entity.Example; //此包是tk下的
1.定义一个dao层接口不需要任何方法 需要继承Mapper<类型>

2.在service中注入dao

import com.alibaba.dubbo.config.annotation.Service;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;import org.springframework.beans.factory.annotatio n.Autowired;
import tk.mybatis.mapper.entity.Example; import java.util.List;
import java.util.Map; /**
* 实现类
* BandService类 在接口包下
* @date 2019/12/9 9:14
*/
@Service //注意导入的是dubbo的包
public class BrandServiceImpl implements BrandService { @Autowired
private BrandMapper brandMapper; //依赖注入 @Override//查询所有
public List<Brand> findAll() {
return brandMapper.selectAll();
} @Override //分页查询品牌 page:页码 size:每页记录数
public PageResult<Brand> findPage(int page, int size) {
PageHelper.startPage(page,size);//分页 需要添加在查询的结果的上面
Page<Brand> pageResult=(Page<Brand>) brandMapper.selectAll();
return new PageResult<>(pageResult.getTotal(),pageResult.getResult());
} @Override//条件查询
public List<Brand> findList(Map<String, Object> searchMap) {
Example example = createExample(searchMap);//把方法提取出来了
return brandMapper.selectByExample(example);
} @Override//品牌条件+分页查询
public PageResult<Brand> findPage(Map<String, Object> searchMap, int page, int size) {
PageHelper.startPage(page,size);
Example example = createExample(searchMap);
Page<Brand> brands= (Page<Brand>) brandMapper.selectByExample(example);
return new PageResult<>(brands.getTotal(),brands.getResult());
} @Override //根据id查询品牌
public Brand findById(Integer id) {
return brandMapper.selectByPrimaryKey(id); } @Override //插入数据
public void add(Brand brand) {
brandMapper.insert(brand);
} @Override //更新 数据
public void update(Brand brand) {
brandMapper.updateByPrimaryKeySelective(brand);
} @Override //删除
public void delete(Integer id) {
brandMapper.deleteByPrimaryKey(id);
} //把方法提取出来了(创建一个example对象)
private Example createExample(Map<String,Object> searchMap){
Example example=new Example(Brand.class);
// example是Mybatis数据层框架中的一个工具,可以帮我们完成sql语句中where条件句的书写,
// 相当于where后面的部分,我们可以根据不同的条件来查询和操作数据库,简化书写sql的过程。
Example.Criteria criteria = example.createCriteria();
if (searchMap!=null){
if (searchMap.get("name")!=null&&!"".equals(searchMap.get("name"))){
criteria.andLike("name","%"+(String)searchMap.get("name")+"%");//品牌名字的模糊查询
}
if(searchMap.get("letter")!=null&&!"".equals(searchMap.get("letter"))){//letter品牌的首字母
criteria.andEqualTo("letter",(String)searchMap.get("letter"));//品牌首字母精确查询
}
}
return example;
}
}

mybatis的通用mapper小结的更多相关文章

  1. Mybatis整合通用Dao,Mybatis整合通用Mapper,MyBatis3.x整合通用 Mapper3.5.x

    Mybatis整合通用Dao,Mybatis整合通用Mapper,MyBatis3.x整合通用 Mapper3.5.x ============================== 蕃薯耀 2018年 ...

  2. 扩展mybatis和通用mapper,支持mysql的geometry类型字段

    因项目中需要用到地理位置信息的存储.查询.计算等,经过研究决定使用mysql(5.7版本)数据库的geometry类型字段来保存地理位置坐标,使用虚拟列(Virtual Generated Colum ...

  3. Spring Boot集成Mybatis及通用Mapper

    集成Mybatis可以通过 mybatis-spring-boot-starter 实现. <!-- https://mvnrepository.com/artifact/org.mybatis ...

  4. (二、下) springBoot 、maven 、mysql、 mybatis、 通用Mapper、lombok 简单搭建例子 《附项目源码》

    接着上篇文章中 继续前进. 一.在maven 的pom.xm中添加组件依赖, mybatis通用Mapper,及分页插件 1.mybatis通用Mapper <!-- mybatis通用Mapp ...

  5. MyBatis插件 - 通用mapper

    1.简单认识通用mapper 1.1.了解mapper 作用:就是为了帮助我们自动的生成sql语句 [ ps:MyBatis需要编写xxxMapper.xml,而逆向工程是根据entity实体类来进行 ...

  6. mybatis通用mapper的使用

    项目中持久层封装了两套,一个hibernate,一个是mybatis.hibernate中封装了一些通用的方法,但是mybatis中没有,基于这个需求开始使用mybatis的通用mapper.     ...

  7. Springboot集成mybatis通用Mapper与分页插件PageHelper

    插件介绍 通用 Mapper 是一个可以实现任意 MyBatis 通用方法的框架,项目提供了常规的增删改查操作以及 Example 相关的单表操作.通用 Mapper 是为了解决 MyBatis 使用 ...

  8. 浅谈Mybatis通用Mapper使用方法_java - JAVA

    文章来源:嗨学网 敏而好学论坛www.piaodoo.com 欢迎大家相互学习 对单表进行增删改查是项目中不可避免的需求,Mybatis的通用Mapper插件使这些操作变得简单 添加maven依赖 在 ...

  9. springboot学习笔记:8. springboot+druid+mysql+mybatis+通用mapper+pagehelper+mybatis-generator+freemarker+layui

    前言: 开发环境:IDEA+jdk1.8+windows10 目标:使用springboot整合druid数据源+mysql+mybatis+通用mapper插件+pagehelper插件+mybat ...

随机推荐

  1. 03 Mybatis:01.Mybatis课程介绍及环境搭建&&02.Mybatis入门案例

    mybatis框架共四天第一天:mybatis入门 mybatis的概述 mybatis的环境搭建 mybatis入门案例 -------------------------------------- ...

  2. PAT Basic 1132 数列的⽚段和(20) [数学问题-简单数学]

    题目 给定⼀个正数数列,我们可以从中截取任意的连续的⼏个数,称为⽚段.例如,给定数列{0.1, 0.2, 0.3,0.4},我们有(0.1) (0.1, 0.2) (0.1, 0.2, 0.3) (0 ...

  3. pandas读取和写入excel多个sheet表单

    一.读取单个表单 import pandas as pd excel_reader=pd.ExcelFile('文件.xlsx') # 指定文件 sheet_names = excel_reader. ...

  4. 频率类组件-认证规图分析-JWT认证-drf-jwt插件

    频率类源码 # 1)APIView的dispath方法中的 self.initial(request, *args, **kwargs) 点进去 # 2)self.check_throttles(re ...

  5. [Shoi2013]超级跳马(DP+矩阵乘法)

    设f[i][j]表示方案数,显然有一个O(m2n)的暴力DP法,但实际上可以按距离当前位置的奇偶性分成s1[i][j]和s2[i][j],然后这个暴力DP可以优化到O(nm)的暴力.于是有这样的递推式 ...

  6. 解决 nginx 启动错误 nginx: [emerg] host not found in upstream

    解决办法来自于:https://blog.csdn.net/Hreticent/article/details/86074502 感谢这个朋友简单而清晰的解决办法. 在配置nginx支持PHP的时候, ...

  7. 《C程序设计(第四版)》小记

    我看的这本书很经典,它是谭浩强写的,也就是广为流传的“C语言红皮书”.在网上看了很多帖子,生活中也问过一些朋友,大多数人是不认可这本书的.很多人都说这本书很烂,看不懂,然后去“追逐”国外的一些教材.其 ...

  8. virtualbox Ubuntu拒绝root用户ssh远程登录

    http://www.bcty365.com/content-122-6241-1.html

  9. spi设备描述过程

    一.spi通信 中控制器驱动及spi设备.spi设备驱动的关系入下图: 控制器驱动以及设备全志已经完成,在/driver/spi/spi--sunxi.c  中,打开源码文件可以看到spi控制器属于平 ...

  10. Django数据迁移时提示 ModuleNotFoundError: No module named 'users'

    执行数据迁移时提示找不到对应的APP,错误如下: 这个错误主要是路径找不到引起的,只需在settings文件夹中添加app文件路径即可 sys.path.insert(0, os.path.join( ...