观书散遗帙,探古穷至妙。这篇文章主要讲述Mapper的使用相关的知识,希望能为你提供帮助。
Mapper原理:* 通过Mybatis拦截器的原理,动态的帮我们实现单表的增删改查;用法:* 倒依赖:com.github.abe1533* MyBatis-config.xml中配置通用Mapper在mybatis中的拦截器,
<
plugins>
<
plugin
interceptor="com.github.pagehelper.PageHelper">
<
property
name="dialect"
value="https://www.songbingjia.com/android/mysql"
/>
<
!--
设置为true时,使用RowBounds分页会进行count查询
-->
<
property
name="rowBoundsWithCount"
value="https://www.songbingjia.com/android/true"
/>
<
/plugin>
<
plugin
interceptor="com.github.abel533.mapperhelper.MapperInterceptor">
<
!--主键自增回写方法,默认值MYSQL,详细说明请看文档
-->
<
property
name="IDENTITY"
value="https://www.songbingjia.com/android/MYSQL"
/>
<
!--通用Mapper接口,多个通用接口用逗号隔开
-->
<
property
name="mappers"
value="https://www.songbingjia.com/android/com.github.abel533.mapper.Mapper"
/>
<
/plugin>
<
/plugins>
API:
-
selectOne():查询一个对象,(会把查询对象的非空属性作为查询条件,不同的属性作为条件之间的关系是and,返回是多个对象则抛出异常);
- select():查询多个对象(集合);
- selectCount():查询总条数信息 select count(*) from 表名 where ...
- selectByPrimaryKey():根据主键查询(@ID注解的);
- insert():插入数据,不管数据是否为null;
- insertSelective():只插入非空字段的数据;
- delete():根据条件删除;
- deleteByPrimaryKey():根据主键删除;
- updateByPrimaryKeySeletive():根据根据主键(修改条件)修改此对象的其他属性.例如:update 表名 set age = ? where 主键 = ?;(age和主键都要自己设置)
- 复杂条件的查询,修改和删除 : 通过example对象来实现
Example example = new Example(User.class);
// 创建查询条件对象,默认是and关系
example.createCriteria().andEqualTo("sex", 2).andBetween("age", 16, 24); // 查询女性,并且年龄在16到24
// 添加查询条件,or关系
example.or(example.createCriteria().andEqualTo("userName", "lisi")); // 或者用户名是lisi的
// 实现排序,多个排序规则以‘,‘隔开
example.setOrderByClause("age desc");
【Mapper的使用】
List< User> users = this.userMapper.selectByExample(example);
来自为知笔记(Wiz)
推荐阅读
- app专项测试之启动时间
- 11款最佳活动管理软件下载推荐合集(哪款最适合你())
- Win10删除文件提示:请关闭该文件夹或文件,然后重试 如何处理?
- Win10系统如何禁用自动清理图片缓存?
- Win10系统提示不是有效果的win32应用程序怎样办?
- Win10系统激活失败提示出错0x803f7001怎样处理?
- Win10系统Cortana小娜搜索框如何添加放大镜、箭头图标
- Windows10浏览版系统经常自动重启如何处理
- Win10系统如何更改hosts文件?