范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

取代MybatisGenerator,这款代码生成神器更简单,开发效率更高

  作为一名 Java 后端开发,日常工作中免不了要生成数据库表对应的持久化对象 PO,操作数据库的接口 DAO,以及 CRUD 的 XML,也就是 mapper。
  Mybatis Generator 是 MyBatis 官方提供的一个代码生成工具,完全可以胜任这个工作,不过最近在开发"编程猫"开源网站的时候试用了一下 MyBatis-Plus 官方提供 AutoGenerator,发现配置更简单,开发效率更高!于是就来给小伙伴们安利一波。
  来个 GIF 感受一下 AutoGenerator 生成代码的快感吧。
  一、使用 Mybatis Generator
  为了形成鲜明的对比,我们先来使用 Mybatis Generator 生成一次代码,感受一下整个过程。
  第一步,在 pom.xml 文件中添加 MySQL+MyBatis 的依赖(Mybatis Generator 的前置条件)。      mysql     mysql-connector-java     ${mysql.version}        org.mybatis.spring.boot     mybatis-spring-boot-starter     2.2.2  复制代码
  添加完成后,一定要执行一次 Maven 重载(见下图),确保 MyBatis 的依赖加载完毕后再执行第二步。
  否则下一步可能不通过,但又得不到任何错误提示。不要问我为什么,踩过坑后痛苦的领悟。
  添加完成后,可以通过 Maven 插件来生成代码,也可以通过 Java 代码来生成代码,这里以 Maven 插件的形式来演示。Java 代码的形式可参照 Mybatis Generator:
  mybatis.org/generator/r…
  第二步,在 pom.xml 的 MyBatis Generator 插件,先来看一下整体的结构图,注意是在 build plugins 下节点下添加。
  首先是 MyBatis Generator 插件,目前最新版是 1.4.0,我们采用上一个稳定版本 1.3.7,稳一点。org.mybatis.generator mybatis-generator-maven-plugin 1.3.7 复制代码
  只添加插件还不够,还需要对其进行配置,我们使用 configurationFile 元素来指定一个配置文件 mybatis-generator-config.xml:src/main/resources/mybatis-generator-config.xml 复制代码
  来看一下 mybatis-generator-config.xml 的内容。                                                                                                                                                                                                                                                                                   
复制代码配置文件至少得包含一个contextcommentGenerator 用来配置生成的注释jdbcConnection 用来链接数据库javaTypeResolver 配置 JDBC 与 Java 的类型转换规则javaModelGenerator 配置 po 生成的包路径和项目路径sqlMapGenerator 配置 mapper.xml 文件生成的目录javaClientGenerator 配置 mapper.java 文件生成的目录一个 table 对应一张表,如果想同时生成多张表,需要配置多个 table   更多配置信息可以参照下面这篇文章:   juejin.cn/post/684490…   由于数据库表可能会发生变动,因此我们需要追加一个配置 true,允许覆盖旧的文件。为了防止我们编写的 SQL 语句被覆盖掉,MyBatis Generator 只会覆盖旧的 po、dao、而 *mapper.xml 不会覆盖,而是追加。   Mybatis Generator 需要链接数据库,所以还需要添加数据库驱动依赖,就像这样: mysql mysql-connector-java ${mysql.version} 复制代码   这样就会显得比较冗余,因为我们之前添加过了。好在 Maven 提供了 includeCompileDependencies 属性,可以让我们在插件中引用之前添加的依赖。true 复制代码   到此为止,mybatis-generator-maven-plugin 就算是配置完成了,完整内容如下所示: org.mybatis.generator mybatis-generator-maven-plugin 1.3.7 src/main/resources/mybatis-generator-config.xml truetrue 复制代码   配置完成后可以双击运行 Maven 的插件 Mybatis Generator,没有问题的话,可以看到生成后的文件。   二、使用 MyBatis-Plus 的 AutoGenerator   MyBatis-Plus(简写 MP)是 MyBatis 的增强工具,官方宣称 MP 和 MyBatis 的关系就好像魂斗罗中的 1P 和 2P,可谓好基友,天下走。   AutoGenerator 是 MyBatis-Plus 推出的代码生成器,可以快速生成 Entity、Mapper、Mapper XML、Service、Controller 等各个模块的代码,比 Mybatis Generator 更强大,开发效率更高。   通过前面的体验,想必大家确实感觉到了 Mybatis Generator 的繁琐,接下来,我们来体验一下 AutoGenerator,对比过后,大家心里就有答案了。   第一步,在 pom.xml 文件中添加 AutoGenerator 的依赖。 com.baomidou mybatis-plus-generator 3.4.1 复制代码   第二步,添加模板引擎依赖,MyBatis-Plus 支持 Velocity(默认)、Freemarker、Beetl,这里使用默认的 Velocity 引擎。 org.apache.velocity velocity-engine-core 2.3 复制代码   第三步,进行全局配置。// 全局配置 GlobalConfig gc = new GlobalConfig(); String projectPath = System.getProperty("user.dir"); gc.setOutputDir(projectPath + "/src/main/java"); gc.setAuthor("沉默王二"); gc.setOpen(false); gc.setDateType(DateType.ONLY_DATE); gc.setSwagger2(true); gc.setIdType(IdType.AUTO); 复制代码   第四步,配置数据源。// 数据源配置 DataSourceConfig dsc = new DataSourceConfig(); dsc.setUrl("jdbc:mysql://ip:3306/codingmoretiny02?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai"); dsc.setDriverName("com.mysql.cj.jdbc.Driver"); dsc.setUsername("codingmoretiny02"); dsc.setPassword("123456"); 复制代码   第五步,配置包。// 包配置 PackageConfig pc = new PackageConfig(); pc.setParent("top.codingmore.mpg"); 复制代码   更多配置项可以到官方查看:   baomidou.com/pages/06157…   示例代码示例如下所示:public class CodeGenerator { public static void main(String[] args) { // 代码生成器 AutoGenerator mpg = new AutoGenerator(); GlobalConfig gc = new GlobalConfig(); String projectPath = System.getProperty("user.dir"); gc.setOutputDir(projectPath + "/src/main/java"); gc.setAuthor("沉默王二"); mpg.setGlobalConfig(gc); DataSourceConfig dsc = new DataSourceConfig(); dsc.setDriverName("com.mysql.cj.jdbc.Driver"); mpg.setDataSource(dsc); mpg.execute(); } } 复制代码   再来看一下运行后的效果,可以看到数据库表对应的 controller、service、entity、mapper 等等全有了——爽歪歪:   三、总结对比   对比 Mybatis 的 Generator 和 MyBatis-Plus 的 AutoGenerator,就可以得出这样一条结论:后者的配置更简单,开发效率也更高,功能也更强大——可快速生成 Mapper 、 Model 、 Service 、 Controller 层代码。   MyBatis-Plus 的确配得上 Plus 啊,确实优秀。   作者:沉默王二   链接:https://juejin.cn/post/7064387392152535047

20万级家用SUV新选择,轴距2830mm,提速仅需7。7秒,详解AIONV20万级家用SUV市场中,常见的无非就是丰田RAV4本田CRV或者大众探岳这几款,但随着新能源市场不断崛起,纯电SUV也逐渐成为了限牌限号城市用户的新选择。而在这些纯电SUV中,A买菜车还是越经济越好,这3台油耗低品质高,都是日系,价格不贵说到家用买菜车,现如今虽然有很多厂家都推出了电动车,但对于充电不便利的家庭,或者并没有限牌限号的城市来说,其实燃油车会更受欢迎。但不管是电车还是燃油车,其实最终目的都是越经济越好,起步就是25。19万,极狐阿尔法S冲击高端市场,能成功吗?冲击高端,应该是所有国产新能源一致的目标。尽管在这场竞争中,没有几台车取得胜利,但期间仍旧有许许多多车型诞生出来。其中轿车领域,北汽新能源的极狐阿尔法S就是代表。该车跟极狐首款车型开完五菱凯捷,再换上比亚迪宋MAX,车主说出心里话,差距挺大家里老二生下来之后,我就一直在盘算换车事情,想着至少买个六座版本,这样才能满足全家出行需求。后来在今年年初,我花了12。4万买了一辆五菱凯捷,这款车是2020款1。5TCVT尊贵型可运动可家用,最快4。7秒可破百,不谈价格只谈性能,蔚来ES6蔚来ES6自从诞生之后就充满了很多争议,很多人看不起蔚来ES6,但也有很多人喜欢的不得了,评论可以说是典型的两极分化。但是我看了大部分的评论发现,其实大部分的讨论点,还是聚焦在了这mac终端iTerm2快捷键有哪些?iTerm2快捷操作合集iTerm2是一款专为MacOSX编写的,功能齐全的终端仿真程序,旨在为用户提供OSX下最佳的命令行经验。如果你能了解更多mac终端iTerm2快捷键,使用起来会更顺手。今天给大家TouchCopy如何将iPod和iPhone音乐和播放列表传输到iTunes?如果您的iPod或iPhone包含iTunes资料库中没有的音乐和播放列表,只需点击几下鼠标,TouchCopy就可以帮助您将资料库与设备同步,只需将丢失的歌曲和播放列表复制回iTMac文件搜索工具FindAnyFile如何重置偏好?一款功能强大的mac文件检索工具FindAnyFile破解版推荐给大家,macFindAnyFile可以让你在本地磁盘上搜索查找任何文件,包括本地磁盘的名称创建或修改日期大小或类型HoudahSpot是什么软件?Mac文件搜索工具HoudahSpot有什么功能?HoudahSpotMac是一款简单实用的Mac文件搜索工具,可以按名称文本作者内容种类等信息来查找需要的文件,同时HoudahSpotMac版支持结合标准来缩小搜索结果范围,以便Aerial将AppleTV4K1080p高清屏保带到你的Mac上Aerial是一款将AppleTV高清壁纸搬运到Mac系统的壁纸程序,壁纸均来纽约旧金山夏威夷中国等多地的名胜照片,从1。6版本开始还增加了tvOS13独有的海底景观图片资源。该程家用车还是空间大点好,这2台颜值高动力强,保养还很便宜除开有特殊需求的用户,通常来说普通家庭选择家用车,都比较看重实用性经济性两点,更加直白来说,其实就是空间大和养车便宜。而满足这两点的车型,绝大多数家庭入手它们基本上没有错。那在10
小屏经典再现,华为P50E手机让人惊喜关于手机买什么,这个问题要根据自己的需求去选择,看看是拿来玩游戏或者看电影又或者说经常喜欢拍照?不同的需求,侧重点是不同的,先定位好自己的使用需求!例如,我最近想买一款适合拍Vlo突发!年报发布当晚,新能源车起火烧毁?千亿巨头回应全力配合3月28日晚间,网传小鹏新能源车在深圳某居民楼下起火烧毁,对此,小鹏汽车于29日回应,确认涉事车型为2019款G3,并称将全力配合调查事故原因。而在同一天晚上,小鹏汽车发布了202智能家居就只有照明系统可以设置吗?一说到智能化的生活,人们想到的就是通过语音控制来实现各项功能,尤其是现在比较成熟的照明控制,能够通过语音很好地控制,这是大多数人的印象,但是其实智能家居是有很多的内容的,对于认为只米粉节来临之际,小米带来新机!649起步再过几天就是小米一年一度的米粉节了,在小米的官方商城,小米也是更新了百元机的产品线,为我们带来了红米10a起售价649的红米10A和很多线下杂牌机相比都有很大的优势。手机有三种颜色在推出首款新车之前,滴滴造车面临的首要难题是招人记者周姝祺石王君雨编辑刘安伟最近接到了一通来自滴滴造车部门的电话,对方开出丰厚的条件邀请他加入,具体工作将与汽车高精度定位有关。作为上海一家汽车公司的高级算法工程师,刘安伟和他的同港股异动SW(09866)涨超7逼近前高ET7开始交付蔚来ES7将于5月底发布智通财经APP获悉,蔚来SW(09866)午后涨超7逼近前高,截至发稿,涨6。89,报178。5港元,成交额1379。94万港元。消息面上,3月28日,蔚来官微宣布,智能电动旗舰轿年巨亏过百亿,美团这是赔本赚吆喝还是暂时的阵痛?文翠鸟资本美团(3690。HK)亏损156亿元。这个最新年报数据,让市场惊愕。美团港股股价经历半年多的不断下跌后,一度跌至100元附近,随时就会退出百元股阵营。曾经风光无限的互联网市值蒸发超96,裁员千人,微信电商第一股怎么了?天下网商章航英编辑吴羚玮今年1月,据媒体报道,有赞启动裁员,人数超过千人,人员优化出现在了有赞新年OKR(绩效考核)中。相隔两月,有赞又传出裁员。最近,一张员工离职后,留下满满一大花半个月工资入手红米K50,不吹不黑,这钱花得真值得有一说一,自从小米实行双品牌策略后,红米的发展就明显更快了,主打中端市场,尤其是红米K系列更是具有极高的性价比。而红米在发布了K50系列后,我也终于把用了接近2年的红米K20换成红曝真全面屏设计三星S23Ultra,三星S22沦为白菜机,买早网友受伤曝光深受关注2023年顶级旗舰机皇三星S23Ultra新机在外观设计方面,据曝光深受关注2023年顶级旗舰机皇三星S23Ultra新机的概念图显示,曝光深受关注2023年顶级旗舰机早知天下事早知天下事2022年3月30日周三每日早报0孟晚舟发布华为2021年财报营收6368亿元,净利润1137亿元同比增长75。91海思成为一级部门!华为2021年业务架构变更,海思从2