mybatis的通用mapper小结
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小结的更多相关文章
- Mybatis整合通用Dao,Mybatis整合通用Mapper,MyBatis3.x整合通用 Mapper3.5.x
Mybatis整合通用Dao,Mybatis整合通用Mapper,MyBatis3.x整合通用 Mapper3.5.x ============================== 蕃薯耀 2018年 ...
- 扩展mybatis和通用mapper,支持mysql的geometry类型字段
因项目中需要用到地理位置信息的存储.查询.计算等,经过研究决定使用mysql(5.7版本)数据库的geometry类型字段来保存地理位置坐标,使用虚拟列(Virtual Generated Colum ...
- Spring Boot集成Mybatis及通用Mapper
集成Mybatis可以通过 mybatis-spring-boot-starter 实现. <!-- https://mvnrepository.com/artifact/org.mybatis ...
- (二、下) springBoot 、maven 、mysql、 mybatis、 通用Mapper、lombok 简单搭建例子 《附项目源码》
接着上篇文章中 继续前进. 一.在maven 的pom.xm中添加组件依赖, mybatis通用Mapper,及分页插件 1.mybatis通用Mapper <!-- mybatis通用Mapp ...
- MyBatis插件 - 通用mapper
1.简单认识通用mapper 1.1.了解mapper 作用:就是为了帮助我们自动的生成sql语句 [ ps:MyBatis需要编写xxxMapper.xml,而逆向工程是根据entity实体类来进行 ...
- mybatis通用mapper的使用
项目中持久层封装了两套,一个hibernate,一个是mybatis.hibernate中封装了一些通用的方法,但是mybatis中没有,基于这个需求开始使用mybatis的通用mapper. ...
- Springboot集成mybatis通用Mapper与分页插件PageHelper
插件介绍 通用 Mapper 是一个可以实现任意 MyBatis 通用方法的框架,项目提供了常规的增删改查操作以及 Example 相关的单表操作.通用 Mapper 是为了解决 MyBatis 使用 ...
- 浅谈Mybatis通用Mapper使用方法_java - JAVA
文章来源:嗨学网 敏而好学论坛www.piaodoo.com 欢迎大家相互学习 对单表进行增删改查是项目中不可避免的需求,Mybatis的通用Mapper插件使这些操作变得简单 添加maven依赖 在 ...
- springboot学习笔记:8. springboot+druid+mysql+mybatis+通用mapper+pagehelper+mybatis-generator+freemarker+layui
前言: 开发环境:IDEA+jdk1.8+windows10 目标:使用springboot整合druid数据源+mysql+mybatis+通用mapper插件+pagehelper插件+mybat ...
随机推荐
- PAT Advanced 1051 Pop Sequence (25) [栈模拟]
题目 Given a stack which can keep M numbers at most. Push N numbers in the order of 1, 2, 3, -, N and ...
- ZJNU 1217 - 航线问题——高级
将所有航线的其中一边排序后,另一边进行类dp 定义一个数组c,c[i]表示在所有能够开通i条航线的组合中,位置序号最大的那条航线的序号的最小值 比如下面一个样例 1 3 2 4 3 1 4 2 此时对 ...
- mysql 几个坑
浮点转int类型 更新合并换成插入 不要频繁更新超过20个字节的字段 程序逻辑得到数据处理后才还回连接
- AOP统一处理修改人、创建人、修改时间、创建时间
1.配置拦截 首先开启 <aop:aspectj-autoproxy proxy-target-class="true"/>代理.解释一下下面..的意思是多个 < ...
- 关于Tarjan的一些问题
$Q:$为什么tarjan求强连通分量要记录点是否在栈内,而求双连通分量不用? $A:$在有向图中存在横叉边,而无向图中不存在: $Q:$为什么用子搜索树中的$low[v]$来更新$low[k]$,而 ...
- 写入简单的日志log
log.c: #define _GNU_SOURCE #include <stdio.h> #include <stdlib.h> #include <string.h& ...
- C实现日志等级控制
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <stdarg.h&g ...
- [LC] 285. Inorder Successor in BST
Given a binary search tree and a node in it, find the in-order successor of that node in the BST. Th ...
- java调用IPFS去中心化体系
Maven pom.xml引入 <repositories> <repository> <id>jitpack.io</id> <url>h ...
- word打印,和打印预览
public void Print(object fileName) { try { foreach (Syst ...
