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 Basic 1070 结绳(25) [排序,贪⼼]
题目 给定⼀段⼀段的绳⼦,你需要把它们串成⼀条绳.每次串连的时候,是把两段绳⼦对折,再如下图所示套接在⼀起.这样得到的绳⼦⼜被当成是另⼀段绳⼦,可以再次对折去跟另⼀段绳⼦串连.每次串 连后,原来两段绳 ...
- Java之解决线程安全问题的方式三:Lock锁
import java.util.concurrent.locks.ReentrantLock; /** * 解决线程安全问题的方式三:Lock锁 --- JDK5.0新增 * * 1. 面试题:sy ...
- 常见的nosql数据库有哪些?以及他们的特点与区别?
一.常见的nosql 二.Redis,Memcache,MongoDb的特点 (1).Redis 优点: 1.支持多种数据结构,如 string(字符串). list(双向链表).dict(hash表 ...
- vector内部实现2
push_back 往动态数组的内部进行添加数据 pop_back 往动态数组的尾部进行删除数据 resize 讲元素的数量len改成num个数量 如果size()变大了,多出来的将用默认构造来创 ...
- drf序列化和反序列化
目录 drf序列化和反序列化 一.自定义序列化 1.1 设置国际化 二.通过视图类的序列化和反序列化 三.ModelSerializer类实现序列化和反序列化 drf序列化和反序列化 一.自定义序列化 ...
- 虚拟机enp0s8网卡无法联网和开放linux端口
1.虚拟机enp0s8网卡无法联网解决 在 VirtualBox 中安装好 centos7 后,发现使用 ping 命令测试连接外网 IP 地址,会报错,或者host-only网卡无ip,mobaXt ...
- bcp文件, 逗号文件
bcp 实用工具 https://docs.microsoft.com/zh-cn/sql/tools/bcp-utility?view=sql-server-2017 大容量复制程序实用工具 (bc ...
- mysql字段值为null时排序问题
-- DESC 降序时候默认null值排在后面.ASC升序时默认null值排在前面,可使用 IS NULL处理 ORDER BY score desc,gmPrice IS NULL,gmPrice, ...
- Traffic Network in Numazu
Traffic Network in Numazu 题目描述 Chika is elected mayor of Numazu. She needs to manage the traffic in ...
- shiro遇到的坑-重写sessionManager遇到的坑
最近公司开发一个微信小程序项目加shiro的项目.因为微信小程序是不使用cookie,使用的是 storage .那么我们就不能使用传统的方式来保持登录状态了. 1.首先和网上的一样,先重写一个Ses ...
