Mybatis Generator 1.4.0 发布,自动代码工具
Mybatis Generator是一个自动代码工具,此版本相较于旧版本有很多重要的更新。
Mybatis Generator目前有5种运行模式,分别为:MyBatis3DynamicSql、MyBatis3Kotlin、MyBatis3、MyBatis3Simple、MyBatis3DynamicSqlV1。
<context id="MysqlTables" targetRuntime="MyBatis3DynamicSql" defaultModelType="flat"> <!-- 省略中间 --> </context>
1、MyBatis3、MyBatis3Simple是比较老的模式,通常生成mapper接口、model实体和XML文件(当javaClientGenerator type为 ANNOTATEDMAPPER 时不生成XML)。这两种模式生成的文件只需要依赖Mybatis3即可正常工作,但是对于很多操作不支持。如果想要使用数据库函数或者多表联合查询,这种模式下是不支持的,需要写额外的SQL。
2、MyBatis3DynamicSqlV1是比较新的模式。除了需要依赖Mybatis3以外,还需要mybatis-dynamic-sql才能正常工作。相比上面的老模式,这种模式更加方便。
Student obj = new Student(); obj.setEmail("xxx@xx.com"); //跟新id为8的学生信息 studentMapper.updateByPrimaryKeySelective(obj); //将学生id大于10并且名字含有"张"或者性别为1的进行更新。 // sql: update student set email='xxx@xx.com' where id >10 and (name like '%张%' or sex =1) studentMapper.updateByExampleSelective(obj).where(student.id, isGreaterThan(10L)) .and(student.name, isLike("%张%"), SqlBuilder.or(student.sex, isEqualTo(1))) .build().execute(); //多表join查询,这主要是Mybatis-Dynamic-Sql的功能 SelectStatementProvider selectStatement =select(student.allColumns()).from(student).join(teacher) .on(student.id, equalTo(teacher.id)) .where(teacher.age, isGreaterThanOrEqualTo(30)) .build().render(RenderingStrategies.MYBATIS3); List<Student> list = studentMapper.selectMany(selectStatement);
3、MyBatis3DynamicSql、MyBatis3Kotlin这两种模式是类似的,一种是使用java,一种是Kotlin。这是在MyBatis3DynamicSqlV1基础上改进而来。这次的更新主要集中在这种模式上面。
- 删除了*ByExample的方法。
- 增加了Optional支持。
- 增加了批量新增的支持。
Student obj = new Student(); obj.setEmail("xxx@xx.com"); //跟原来一样的更新 studentMapper.updateByPrimaryKeySelective(obj); //批量新增 studentMapper.insertMultiple(Collections.singleton(obj)); //按条件更新 类似updateByExample sql: update student set email = #{email} where id >5 and ( name like '%wang%' or sex =1 ) studentMapper.update(completer -> completer.set(student.email).equalTo(obj.getEmail()) .where(student.id, isGreaterThanOrEqualTo(5L)) .and(student.name, isLike("%wang%"), SqlBuilder.or(student.sex, isEqualTo(1))) ); //按条件搜索 类似 selectByExample sql: select * from student where id >= 5 and ( name like '%wang%' or sex =1 ) List<Student> list = studentMapper.select(completer -> completer.where(student.id, isGreaterThanOrEqualTo(5L)) .and(student.name, isLike("%wang%"), SqlBuilder.or(student.sex, isEqualTo(1))) ); // Optional 支持 Optional<Student> optional = studentMapper.selectByPrimaryKey(5L); optional.ifPresent(value -> System.out.println(value.getEmail())); //Mybatis-Dynamic-Sql 功能 SelectStatementProvider selectStatement =select(student.allColumns()).from(student).join(teacher) .on(student.id, equalTo(teacher.id)) .where(teacher.age, isGreaterThanOrEqualTo(30)) .build().render(RenderingStrategies.MYBATIS3); List<Student> studentList = studentMapper.selectMany(selectStatement);
默认模式为MyBatis3DynamicSql,强烈推荐。具体更新,请查看官网Mybatis Generator官方文档
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Jenkins CLI v0.0.23 发布
Jenkins CLI 在参加2019 年谁是最受欢迎的中国开源软件投票,如果您已经是 Jenkins CLI 的用户,请点击下面的链接帮忙投上一票。 https://www.oschina.net/project/top_cn_2019#jenkins-cli 如果,您好没有听说或者使用过 Jenkins CLI,欢迎阅读我们的官方文档,以及下面的 v0.0.23 版本更新内容。 Jenkins 国内镜像中心发布后,收到了很多的反馈。鉴于之前的操作步骤相对较多,本次 Jenkins CLI 给出了一键启动国内镜像源的方案: 只要执行命令:jcli center mirror 即可启动镜像源。如果希望使用原有的地址,也非常简单:jcli center mirror--enable=false 更多有意思的玩法,请参考 Jenkins 中文社区论坛。 ? 功能 支持创建插件 (#255)@LinuxSuRen 支持子 shell 命令(#253)@LinuxSuRen 支持启用(或禁用)更新中心镜像源(#251)@LinuxSuRen 增加以键值对的形式触发参数化流水线(#249)@L...
- 下一篇
2020年,五大云计算预测
来源:信息安全与通信保密杂志社 Forrester的新报告发现,超大规模云联盟、云原生创新和新的云安全要求将在2020年重塑云计算行业格局。 Forrester近日发布了一份报告,对2020年的云计算行业发布了五大预测。这些预测表明争夺云计算霸主地位的竞争日益激烈,各大云供应商在不断调整和改变经营策略。 这些预测将帮助CIO及其企业为不断发展的云计算领域做好准备;随着行业云领导者不断发展,这个领域会不断随之变化。 由于公共云市场——包括云应用软件(SaaS)、云开发及数据平台(PaaS)和云基础设施(IaaS)——预计到2022年将达到4110亿美元的规模,Forrester在《2020年云计算预测》报告中概述了企业云领域在未来的以下五大转变。 一、IBM和Oracle撤退到熟悉的领域,阿里云对谷歌构成威胁 公司企业可以从几大云提供商那里租用
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Linux系统CentOS6、CentOS7手动修改IP地址
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- Hadoop3单机部署,实现最简伪集群
- CentOS7安装Docker,走上虚拟化容器引擎之路
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题