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. 吴裕雄--天生自然深度学习TensorBoard可视化:命名空间

    # 1. 不同的命名空间. import tensorflow as tf with tf.variable_scope("foo"): a = tf.get_variable(& ...

  2. [HAOI2018]苹果树(组合数学)

    首先有个很奇妙而且很有用的性质:每个二叉树对应唯一的中序遍历,然后每个二叉树出现概率相同.所以n个节点的二叉树形态是n!种(题目中说了*n!已经是提示了),对每种方案求和即可得到期望.令f[i]表示i ...

  3. 安装 texlive

    多系统使用texlive 中文latex 用xelatex 编译 只需要加入宏包 \usepackage[UTF8]{ctex} Rmarkdown 配置模版 $ cat _output.yaml b ...

  4. 关于tomcat启动错误:At least one JAR was scanned for TLDs yet contained no TLDs

    一.问题原因: 1.出现这个问题的原因就是Tomcat启动时会扫描大量jar包,如果含有不符合TLD规范的就会出现这个问题 2.以后基本上不会使用JSP作为视图层,所以我们可能根本不需要TLD这个东西 ...

  5. Angular ng-container ng-template 用法

    ng-container本身不创建任何html代码,相当于一个容器. <ng-container *ngFor="let item of dataSource;let i=index& ...

  6. JS实现遮罩层

    /* * 显示loading遮罩层 */ function loading() { var mask_bg = document.createElement("div"); mas ...

  7. jenkins推送docker镜像到远程仓库

    参考链接:https://blog.csdn.net/qq_34252622/article/details/92791262

  8. JSONObject和JSONArray的基本使用

    一.JSONObject和JSONArray的数据表示形式 JSONObject的数据是用 {  } 来表示的, 例如:   { "name" : "佩奇", ...

  9. vs code打开文件显示的中文乱码

    这种情况下,一般是编码格式导致的,操作办法: 鼠标点击之后,上面会弹出这个界面,双击选中 然后从UTF-8换到GB2312,或者自己根据情况,更改编码格式

  10. Servlet中转发和重定向的路径问题以及表单提交路径问题

    一.请求转发与响应重定向的种类 有两种方式获得Servlet转发对象(RequestDispatcher):一种是通过HttpServletRequest的getRequestDispatcher() ...