Mybatis Generator最完好装备详解ITeye - 凯发娱乐

Mybatis Generator最完好装备详解ITeye

2019-01-10 20:40:38 | 作者: 昆纶 | 标签: 生成,假如,运用 | 浏览: 1291

!-- 关于mybatis来说,即生成Mapper接口,留意,假如没有装备该元素,那么默许不会生成Mapper接口 targetPackage/targetProject:同javaModelGenerator type:挑选怎样生成mapper接口(在MyBatis3/MyBatis3Simple下): 1,ANNOTATEDMAPPER:会生成运用Mapper接口+Annotation的办法创立(SQL生成在annotation中),不会生成对应的XML; 2,MIXEDMAPPER:运用混合装备,会生成Mapper接口,并恰当增加适宜的Annotation,可是XML会生成在XML中; 3,XMLMAPPER:会生成Mapper接口,接口彻底依靠XML; 留意,假如context是MyBatis3Simple:只支撑ANNOTATEDMAPPER和XMLMAPPER javaClientGenerator targetPackage="com._520it.mybatis.mapper" type="ANNOTATEDMAPPER" targetProject="src/main/java" !-- 在targetPackage的基础上,依据数据库的schema再生成一层package,终究生成的类放在这个package下,默许为false -- property name="enableSubPackages" value="true"/ !-- 可以为一切生成的接口增加一个父接口,可是MBG只担任生成,不担任查看 property name="rootInterface" value=""/ /javaClientGenerator !-- 挑选一个table来生成相关文件,能够有一个或多个table,有必要要有table元素 挑选的table会生成一下文件: 1,SQL map文件 2,生成一个主键类; 3,除了BLOB和主键的其他字段的类; 4,包括BLOB的类; 5,一个用户生成动态查询的条件类(selectByExample, deleteByExample),可选; 6,Mapper接口(可选) tableName(必要):要生成目标的表名; 留意:巨细写灵敏问题。正常情况下,MBG会主动的去辨认数据库标识符的巨细写灵敏度,在一般情况下,MBG会 依据设置的schema,catalog或tablename去查询数据表,依照下面的流程: 1,假如schema,catalog或tablename中有空格,那么设置的是什么格局,就准确的运用指定的巨细写格局去查询; 2,不然,假如数据库的标识符运用大写的,那么MBG主动把表名变成大写再查找; 3,不然,假如数据库的标识符运用小写的,那么MBG主动把表名变成小写再查找; 4,不然,运用指定的巨细写格局查询; 别的的,假如在创立表的时分,运用的""把数据库目标规则巨细写,就算数据库标识符是运用的大写,在这种情况下也会运用给定的巨细写来创立表名; 这个时分,请设置delimitIdentifiers="true"即可保存巨细写格局; 1,schema:数据库的schema; 2,catalog:数据库的catalog; 3,alias:为数据表设置的别号,假如设置了alias,那么生成的一切的SELECT SQL句子中,列名会变成:alias_actualColumnName 4,domainObjectName:生成的domain类的姓名,假如不设置,直接运用表名作为domain类的姓名;能够设置为somepck.domainName,那么会主动把domainName类再放到somepck包里边; 5,enableInsert(默许true):指定是否生成insert句子; 6,enableSelectByPrimaryKey(默许true):指定是否生成依照主键查询目标的句子(便是getById或get); 7,enableSelectByExample(默许true):MyBatis3Simple为false,指定是否生成动态查询句子; 8,enableUpdateByPrimaryKey(默许true):指定是否生成依照主键修正目标的句子(即update); 9,enableDeleteByPrimaryKey(默许true):指定是否生成依照主键删去目标的句子(即delete); 10,enableDeleteByExample(默许true):MyBatis3Simple为false,指定是否生成动态删去句子; 11,enableCountByExample(默许true):MyBatis3Simple为false,指定是否生成动态查询总条数句子(用于分页的总条数查询); 12,enableUpdateByExample(默许true):MyBatis3Simple为false,指定是否生成动态修正句子(只修正目标中不为空的特点); 13,modelType:参阅context元素的defaultModelType,相当于掩盖; 14,delimitIdentifiers:参阅tableName的解说,留意,默许的delimitIdentifiers是双引号,假如相似MYSQL这样的数据库,运用的是`(反引号,那么还需要设置context的beginningDelimiter和endingDelimiter特点) 15,delimitAllColumns:设置是否一切生成的SQL中的列名都运用标识符引起来。默许为false,delimitIdentifiers参阅context的特点 留意,table里边许多参数都是对javaModelGenerator,context等元素的默许特点的一个复写; table tableName="userinfo" !-- 参阅 javaModelGenerator 的 constructorBased特点-- property name="constructorBased" value="false"/ !-- 默许为false,假如设置为true,在生成的SQL中,table姓名不会加上catalog或schema; -- property name="ignoreQualifiersAtRuntime" value="false"/ !-- 参阅 javaModelGenerator 的 immutable 特点 -- property name="immutable" value="false"/ !-- 指定是否只生成domain类,假如设置为true,只生成domain类,假如还装备了sqlMapGenerator,那么在mapper XML文件中,只生成resultMap元素 -- property name="modelOnly" value="false"/ !-- 参阅 javaModelGenerator 的 rootClass 特点 property name="rootClass" value=""/ !-- 参阅javaClientGenerator 的 rootInterface 特点 property name="rootInterface" value=""/ !-- 假如设置了runtimeCatalog,那么在生成的SQL中,运用该指定的catalog,而不是table元素上的catalog property name="runtimeCatalog" value=""/ !-- 假如设置了runtimeSchema,那么在生成的SQL中,运用该指定的schema,而不是table元素上的schema property name="runtimeSchema" value=""/ !-- 假如设置了runtimeTableName,那么在生成的SQL中,运用该指定的tablename,而不是table元素上的tablename property name="runtimeTableName" value=""/ !-- 留意,该特点只针对MyBatis3Simple有用; 假如挑选的runtime是MyBatis3Simple,那么会生成一个SelectAll办法,假如指定了selectAllOrderByClause,那么会在该SQL中增加指定的这个order条件; property name="selectAllOrderByClause" value="age desc,username asc"/ !-- 假如设置为true,生成的model类会直接运用column自身的姓名,而不会再运用驼峰命名办法,比方BORN_DATE,生成的特点姓名便是BORN_DATE,而不会是bornDate -- property name="useActualColumnNames" value="false"/
版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表凯发娱乐立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章