mybatis自动生成类,ORM配置实践

        mybatis目前一直作为我主要使用的ORM框架,当然,它的简单,SQL可控,高效才是我选择它的最终原因。前段时间学习了他的实体,ORM的XML文件自动生成,感觉也是比较简单。下面稍微介绍一下具体的配置方面的

在它的官网上,有几种方式来生成类及配置。

1 从命令提示符 使用 XML 配置文件

2 作为Ant 任务使用 XML 配置文件

3 作为Maven Plugin

4 从另一个Java 程序使用 XML 配置文件

5 插件生成

今天,我只讲实践第3,5点:

一 使用MAVEN插件

首先在你的POM里面添加一个PLUG,


另外,针对MVN,需要设置两个内置变量:


mybatis.generator.overwrite:表示每次生成是否覆盖之前的文件,默认为否

mybatis.generator.configurationFile:表示生成代码文件的配置文件,默认文件名为generatorConfig.xml,这里我进行自定义,因为插件生成对比MVN的生成,里面的配置项不能公用,当然。各位看官,有好的方式,也请分享一下。OK。MVN的配置生成就OK了。你只需要使用熟悉的mvn clean install,即可从DB生成你想要的实体,ORM的配置。

二 使用官方的插件

这个是基于eclipse的swt的,GITHUB上面,有这个插件的地址https://github.com/mybatis/generator/tree/master/eclipse/UpdateSite,下载下来,然后放到eclispe下面的dropins下面,重启一下就行了。

最后,我们重点的讲一下generatorConfig.xml这个配置项文件

classPathEntry :元素 用于添加运行类路径位置到类路径中的 MyBatis Generator(MBG)。 classPathEntry元素是generatorConfiguration的子元素.MBG 在这些情况下从这些路径下加载类:

a 当加载 JDBC 驱动内省数据库时

b 当加载根类中的 JavaModelGenerator 检查重写的方法时

context :元素用于指定生成一组对象的环境。子元素用于指定要连接到的数据库、 要生成对象的类型和要内省的表。多个 context元素可以在generatorConfiguration元素中列出来,这样可以在同一个MyBatis Generator (MBG)从不同的数据库或者使用不同的生成生成器参数生成对象。以下都 是context的子元素

commentGenerator:用来定义注释生成的属性,主要有suppressAllComments,suppressDate这两个属性。其中suppressAllComments
表示是否生成注释,suppressDate表示是否生成日期

jdbcConnection:定义数据库相关的属性说明,比较简单,就不列了。


javaModelGenerator:JAVA的model生成配置,主要有targetPackage,targetProject丙个属性

targetPackage:表示生成的MODEL包路径

targetProject:表示生成的MODEL项目路径

sqlMapGenerator:用于定义SQL映射生成器的属性。SQL映射生成器为每一个内省的表生成MyBatis/iBATIS形式的XML文件。如果不指定一个javaClientGenerator,则适用以下规则:

如果您指定一个sqlMapGenerator,那么MBG将只生成SQL映射的XML文件和模型对象。如果您没有指定一个sqlMapGenerator,那么MBG将只会生成模型对象。

targetPackage:这个包用于放置生成的SQL映射文件。在默认的生成器中,属性"enableSubPackages"用来控制如何计算实际的包。

如果是true,如果表的catalog和schema存在,就将他们作为子包加起来。如果"enableSubPackages"是false(默认值),计算的package将是targetPackage属性指定的值。MBG 将创建所需的生成包的文件夹。

targetProject:这用来指定生成SQL映射的目标项目。当在Eclipse环境中运行时,此选项指定保存对象的位置的项目和源文件夹。在其他环境中,此值应为本地文件系统上的现有目录。如果它不存在,MBG不会创建它。

javaClientGenerator:用于定义 Java 客户端代码生成器的属性。Java客户端生成器生成Java接口和类,它可以简单地使用生成的Java模型和XML映射文件。在iBATIS2目标环境中,这些对象可以生成DAO接口和实现类形式的代码。对Mybatis来说,会生成Mapper接口形式的代码。如果不指定此元素,然后代码生成器(MBG)将不会生成Java客户端接口和类。

table 元素用来从内省数据库中选择一个表。选定的表会生成如下的这些对象:

一个 MyBatis/iBATIS 格式的SQL映射文件

一组根据表生成的"model"类:

一个和表的主键匹配的类(如果表有主键)。

一个包含了非主键字段和BLOB字段的类,如果存在主键类,这个类就会继承主键类。

如果表中包含BLOB字段,就会有一个包含了BLOB字段的类。这个类会根据表的配置继承上面的一个或两个类。

一个用于不同的"by example"方法(selectByExample, deleteByExample)生成动态查询条件的类。

(可选) 一个DAO接口或者类。

最后给个配置截图:


当然,这个mybatis的插件其实是不支持多表关联去生成代码。初看,好像是不太友好。不过,你静下来想一下,其实也就明白。在一个大数据访问的时代,为什么需要多表关联。我们跟本不需要!!!就是要单表。足够简单,足够清晰,足够NB.话说回来,你确实需要多表关连时,可以在它的基础上,再去改你的SQL了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,362评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,330评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,247评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,560评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,580评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,569评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,929评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,587评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,840评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,596评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,678评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,366评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,945评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,929评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,165评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,271评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,403评论 2 342

推荐阅读更多精彩内容