栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

使用tk.mybatis快速开发curd

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用tk.mybatis快速开发curd

使用mybatis已经是可以快速开发程序了,对于单表的curd似乎是一种可抽象的结果,下面介绍tk.mybatis的使用方式。

maven引用

	tk.mybatis
	mapper-spring-boot-starter
	1.2.4

我使用的是这个版本,所以相关功能介绍也是这个版本。

使用where条件

当使用查询条件的时候,我们可以使用mybatis的方式写sql来解决,很多情况下,写sql并不是一个特别简单的情况,尤其是字段多的时候,需要针对每个字段进行判断是否为空等等,写起来是相当的多。
tk.mybatis提供了一套api,可以帮助我们省去很多操作。

 Example example = new Example(xxx.class);
 Example.Criteria criteria = example.createCriteria();

首先需要创建example和criteria。Example的参数是对应表的类。criteria才是我们关注的对象,他有丰富的条件。
例如且等于

      criteria.andEqualTo("filed", test);

例如或等于

	
	criteria.orEqualTo("filed", test);

例如大于和小于

	criteria.andGreaterThan("filed", test);
	criteria.andLessThan("filed", test);

还有一些我们常见的操作
in操作和between操作

	criteria.andIn("filed", test);
	criteria.andBetween("filed", test, test1);

通过以上的方法,我们基本已经可以满足对单表的条件比对操作了。

排序操作

排序操作设计的比较奇特,并不在criteria里,而是在example里。

example.setOrderByClause("xxx desc");

排序的sql语句就写在setOrderByClause中就可以了。
无论是增删改查,调用的都是ByExample的方法。

坑点
  • 我们在插入和查询的时候都会使用对象来作为条件,但是如果对象里有null值,那么其实他不是我们想插入的字段,我们只想插入非null的。tk.mybatis默认没有对insert等方法做处理,而是单独开辟了一个insertSelective的方法。这个刚开始使用特别不舒服,一般都是insert包含了过滤,但是没有需要专门使用insertSelective。其他的方法也类型。

  • 使用查询条件的时候,使用的是对象的字段名,而不是表的列名。这个刚开始很容易抓混,不知道应该使用哪个。

criteria.orEqualTo("filed", test);
  • 当查询条件特别多的时候,请写sql。条件特别多的时候写代码特别容易抓混,而且由于条件特别多,不需要的部分太多了,例如criteria.andGreaterThan。这些最后都会成为干扰项,这种情况写sql是清晰的方式。
 	criteria.andGreaterThan("filed1", test);
	criteria.andLessThan("filed2", test);
	criteria.andGreaterThan("filed3", test);
	criteria.andLessThan("filed4", test);
	criteria.andGreaterThan("filed5", test);
	criteria.andLessThan("filed6", test);
	criteria.andGreaterThan("filed7", test);
	criteria.andLessThan("filed8", test);
	criteria.andGreaterThan("filed9", test);
	criteria.andLessThan("filed0", test);

  • 没有连表操作,这算是他的一个功能不足的情况,我们可以使用mybatis的连表操作,但是他确实不是一个好的写法。这里也建议直接写sql。
转载请注明:文章转载自 www.mshxw.com
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号