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

取代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

华为发布仓颉编程语言,打破国外编程霸权,让中国人用汉字编程仓颉这两个字我想大家听起来都不算特别熟悉,可能只有一部分人,听起来应该是比较了解的,但是仓颉这两个字却有非常深远的寓意在里边。仓颉的由来仓颉其实就是中国原始象形文字的创造者,他本身让天下没有难做的生意后一句话就是,天下的生意我一个人做马云曾经说过一句振奋人心的话,让天下没有难做的生意,这句话听起来豪情万丈,其实这句话本身就有问题,在当时的社会,我们的生意难做吗?不是的,我们国家当时不是生意难不难做的问题。可以说iPhone13最新售价确认,开年跌至新低,128GB版本售价更亲民了高端市场中苹果的iPhone手机一直都是最畅销的,这也让其它手机厂商们眼红不已,在发布旗舰新机的时候,常常会将苹果手机拿来进行对比证明自家的手机更出色,但是久而久之这都已经成为了一华为任命丁耘为企业BG总裁沃尔沃汽车请戴森前CEO任新CEO高管变动2022年1月1日9日华为阿里爱奇艺沃尔沃汽车马瑞利苹果孩之宝桥水等公司高管变动。中国华为日前发布人事任命,丁耘担任企业BG总裁,同时仍兼任运营商BG总裁。阿里副总裁达摩院自动驾驶实验室负责人王刚已于近Python设计模式简单工厂模式今天分享的主题是Python简单工厂模式的具体实现简单工厂模式,说起这个概念,你可能比较陌生,但是在日常码代码中你一定不经意间用到过。1类别简单工厂模式又称之为静态工厂方法,属于创华为造车野心首款鸿蒙车型已揽近9000订单,不抛弃赛力斯SF5本文来源时代周报作者杨玲玲1月6日下午,广州市天河区正佳广场4楼的华为门店,三五成群的消费者将一辆绿色电动汽车围住,不时向一旁的销售人员咨询价格配置等问题。这款车正在预售,卖得还不2022将要上市的重磅旗舰手机,这三款值得期待,等等党的福音来了导读2022将要上市的重磅旗舰手机,这三款值得期待,等等党的福音来了2021年以来手机行业产出了很多好的手机产品,很多品牌都发布了自己全新的作品,2022年来到以后也会有更多好的产小米推出游戏鼠标Lite,目前众筹价为99元1月10日消息,小米官方于小米商城公布了旗下全新产品的众筹预热,此次推出的新品为小米游戏鼠标Lite,根据官方公布的消息,这一款产品将在1月12日开启众筹,众筹价为99元,零售价为1。1亿的音响系统见过吗?盘点最贵的音箱产品最昂贵的音箱好的音箱很贵,虽然说价格跟音质还是成一定比例的,但是当音箱的价格上升到一个高度的时候,如20万以上,音箱的音质就已经非常好了,用一句话总结,盲听很多人或许已经听不出来哪这才是vivo最顶尖的旗舰手机!NEX5搭载众多黑科技,下个月发布时间回到2018年,第一款vivoNEX手机正式问世,配备6。59英寸OLED真全面屏,采用升降式前摄结构。得益于新颖的设计理念与真全面屏的显示效果,vivoNEX备受好评。随后,今日热点微信安卓版8。0。18内测华为有望推国产自研内核浏览器1俞敏洪年终总结新东方营收减少80辞退6万员工退学费等现金支出近200亿1月8日下午,新东方创始人俞敏洪在其个人公众号发文,回顾了2021年并展望了未来的转型方向。俞敏洪称,1月4
鸿蒙OS2。0来了来我这里了鸿蒙OS来到我这就了呲牙呲牙呲牙身边有华为和荣耀手机的就赶紧升级尝鲜吧比心比心比心这一天,等了好久,终于等来了,还好等到了流泪流泪,容易吗?我!唉,都说P30不是亲生的,来的比谁慢选购手册!小米MIX4和小米11Ultra完美与极致并存万众期待的小米MIX4终于在8月10日晚正式发布,众多米粉相信也是无比激动。为了迎接816周年纪念日,小米放出大招回馈那些在小米公司发布第一款手机后下单的首批用户每人1999元红包爆王者归来小米MIX4即将发布自小米直面会被广大米粉爆批以来,小米公司高层以及雷总亲自出面道歉平息众怒!广大米粉一直高度关注的MIX4发布的信息最新动态整理归纳如下。小米MIX4终于王者归来!小米MIX4终于王iPhone隐藏小技巧,你掌握几个?长按消息回复iPhone在锁屏界面收到消息后可以长按直接回复消息一键清除所有通知锁屏界面长按叉号,可以一键清除所有通知浏览器长截图按住锁屏键和音量号,截屏,在操作界面点击右上角的整备用手机推荐100元的手机推荐(参数和结合个人使用感受)在我们日常生活中,还是有必要有一台备用机的,主力机坏了或者没电时,备用机就派上用场了(后面会更新推荐不同价位的手机)首先是一百块钱价位的这个价位只有二手的手机会比较合适。作者的魅蓝OPPOK9Pro再次打造硬核之作K系列新品芯升级2021年9月26日,中国,深圳OPPO广东移动通信有限公司今日于线上举办OPPO未来玩机发布会,正式发布定位为超能游戏芯,全能轻旗舰的OPPOK9Pro。作为K系列的全新产品,O银行欠2000亿债务倒闭,5大银行被点名后,光大银行也违规操作对于大家来说,银行是存钱最有保障的机构,但现在,有银行因欠2000亿债务而倒闭,甚至在国内的5大银行被点名之后,又有一家银行进行违规操作。你知道是哪家企业吗?银行欠2000亿债务倒曾邀香港天王代言,销售额是安踏2倍,却被马云搞垮,创始人被抓曾经红极一时的品牌,邀请香港天王为其代言,甚至销售额都是安踏的2倍。但没想到的是,该品牌最终落幕的原因却与马云有关,这是为什么呢?邀香港天王代言,销售额是安踏2倍随着时代的发展,国极速游戏芯OPPOK9s正式发布,双十一硬核玩家首选10月20日,OPPO举办不套路11。11发布会,推出OPPOK系列全新机型OPPOK9s,以及OPPOK9Pro新配色霓幻银海,同时公布了双十一期间包含IoT产品在内多种爆款产品小红书等多个生态可以直接跳转微信小程序了!微信小程序能耐了微信小程序又迎来了一个重磅!!!据悉,微信小程序现已打通小红书百度京东等多个微信之外的生态。实现公域私域流量合并,打造多个电商闭环。2020年以来,微信小程序的DAU已达到4亿,人小黄车ofo的微信小程序跟手机版APP有什么区别?先看看小黄车ofo的微信小程和小黄车ofo的手机版APP界面,通过对比不难发现就小黄车ofo而言,使用微信小程序几乎完全可以取代手机版APP。我们可以发现工具性应用和小程序是很搭的