<javaClientGenerator> 元素用于定义 Java 客户端代码生成器的属性。 Java客户端生成器生成Java接口和类,它可以简单地使用生成的Java模型和XML映射文件。 在iBATIS2目标环境中,这些对象可以生成DAO接口和实现类形式的代码。 对Mybatis来说,会生成Mapper接口形式的代码。 这个元素是 <context> 元素的一个可选的子元素。 如果不指定此元素,然后代码生成器(MBG)将不会生成Java客户端接口和类
属性 | 描述 | ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
type | 此属性用于选择一个预定义的Java客户端的生成器,或指定用户提供的Java客户端生成器。
任何用户提供的DAO生成器必须继承
org.mybatis.generator.codegen.AbstractJavaClientGenerator
类, 必须有一个公开默认的构造函数。
该属性接收下列预定义的代码生成器之一:
|
||||||||||||||||||||||||
targetPackage | 这个包用于放置生成的接口和实现类。
在默认的生成器中,属性"enableSubPackages"用来控制如何计算实际的包。
如果是true,如果表的catalog和schema存在,就将他们作为子包加起来。
如果"enableSubPackages"是false(默认值),计算的package将是targetPackage属性指定的值。
MBG 将创建所需的生成包的文件夹。
注: 实现类的包可以通过指定下面会提到的可选的 implementationPackage 属性。 |
||||||||||||||||||||||||
targetProject | 这用来指定生成接口和类的目标项目。 当在Eclipse环境中运行时,此选项指定保存对象的位置的项目和源文件夹。 在其他环境中,此值应为本地文件系统上的现有目录。 如果它不存在,MBG不会创建它。 |
属性 | 描述 |
---|---|
implementationPackage | 如果指定了该属性,实现类就会生成在这个包中。 在默认的生成器中,属性"enableSubPackages"用来控制如何计算实际的包。 如果是true,如果表的catalog和schema存在,就将他们作为子包加起来。 如果"enableSubPackages"是false(默认值),计算的package将是targetPackage属性指定的值。 MBG 将创建所需的生成包的文件夹。 |
这个表格列出了所有可以通过<property>子元素进行设置的属性:
属性名 | 属性值 | ||||||||
---|---|---|---|---|---|---|---|---|---|
enableSubPackages | 这个属性用来选择MGB是否根据基于目录和内省表来生成不同的Java包。
例如,假设某个表MYTABLE在MYSCHMA的schema中,也假设targetPackage属性的值设置为"com.mycompany"。 如果此属性为true,为这个表生成的DAO接口和类将被放置在包"com.mycompany.myschema"中。 如果此属性是false,生成的SQL映射将被放在"com.mycompany" schema中。 默认值是 false |
||||||||
exampleMethodVisibility | 此属性用来设置不同"ByExample"方法的可见性 - selectByExample, deleteByExample等等。
如果没有指定,这些方法将会是公开的的,并将在接口中声明。
此属性使您可以隐藏这些方法如果您只想使用它们来执行其他专门的方法。
重要提示: 如果目标运行时是MyBatis3,则将忽略此属性。 |
||||||||
methodNameCalculator | 此属性用于选择一个方法名称计算器。
方法名称计算器可以用来为DAO方法提供不同的名称。
您可以选择一个预定义的值。
如果提供的选项都适合您的环境,
也可以指定一个实现了org.mybatis.generator.api.DAOMethodNameCalculator接口的
完全限定名称。
重要提示: this property is ignored if the target runtime is MyBatis3. |
||||||||
rootInterface | 此属性用于指定一个所有生成的接口都继承的父接口。
这个值可以通过表配置的 rootInterface 属性覆盖。
重要: MBG 不验证接口是否存在或者是否是一个有效的接口。 如果指定,这个属性值应该是一个全限定接口名称(例如 com.github.abel533.mapper.Mapper)。 |
||||||||
useLegacyBuilder | 如果为true,那么客户端将使用SqlBuilder为MyBatis生成动态SQL。
在MyBatis 3.2或以后版本,这个SqlBuilder废弃了,用了一个新的SQL类替代。
如果是false,MBG会使用新的SQL生成器生成客户端代码。
默认值是 false |