MBG有一个配置文件generatorConfig.xml。在里面设置连接数据库配置、javaModel、sqlMap、javaClient,table
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"> <generatorConfiguration> <!-- 引入配置文件,可以通过${sqljdbcPath}取值 --> <properties url="file:///D:/workspaces/mybatisGen/bin/generatorConfig.properties"/> <!-- classPathEntry用于设置数据库的JDBC驱动的jar包地址,location可以等于只包含了数据库驱动的jar或zip路经,也可以是一个包含驱动的目录 --> <classPathEntry location="c:/ojdbc14.jar" /> <!-- targetRuntime:代码生成目标,默认是MyBatis3,可以是Ibatis2Java2或者Ibatis2Java5。生成对象兼容MyBatis版本3.0和更高版本,和JSE 5.0和更高版本 --> <!-- defaultModelType:用来定义生成模型类型策略。1.conditional 默认策略,为每个表生成一个Model class;2.flat:将所有的表中生成一个Model class,即这个类将保存所有表中字段;3.hierarchical :如果表有一个主键,该模型将生成一个主键类,另一个类,用于容纳任何BLOB列在表中,和另一个类,用于容纳其余的字段。这个是一个适当的继承类之间的关系 --> <context id="DB2Tables" targetRuntime="MyBatis3" defaultModelType="conditional"> <commentGenerator> <!-- 是否去除自动生成的注释,默认false,true:去除;false:不去除 --> <property name="suppressAllComments" value="true" /> <!-- 指定在生成的注释是否将包括时间戳,默认是false --> <property name="suppressDate" value="true" /> </commentGenerator> <!-- 数据库连接的信息:驱动类、连接地址、用户名、密码 --> <jdbcConnection driverClass="oracle.jdbc.driver.OracleDriver" connectionURL="jdbc:oracle:thin:@127.0.0.1:1521:ZFGJJ" userId="hr" password="hr"> </jdbcConnection> <!-- 解决数字转换问题 --> <javaTypeResolver> <!-- 只有一个属于forceBigDecimals,默认false。如果字段精确超过0,生成BigDecimal 如果字段精确是0,总长度10-18生成Long; 如果字段精确是0,总长5-9生成Integer; 如果字段精确是0,总长小于5生成Short; 如果forceBigDecimals为true,统一生成BigDecimal --> <property name="forceBigDecimals" value="false" /> </javaTypeResolver> <!-- Model生成配置 targetPackage:生成包路径,自动生成目录。targetProject:项目路经,可以绝对路径或者相对路径。 --> <javaModelGenerator targetPackage="test.model" targetProject="D:\Workspace\mylearn\mybatis\"> <!-- enableSubPackages:是否让schema作为包的后缀 --> <property name="enableSubPackages" value="true" /> <!-- 从数据库返回的值被清理前后的空格 --> <property name="trimStrings" value="true" /> </javaModelGenerator> <!-- sqlMap配置 --> <sqlMapGenerator targetPackage="test.sqlmap" targetProject="D:\Workspace\mylearn\mybatis\"> <property name="enableSubPackages" value="true" /> </sqlMapGenerator> <!-- DAO接口的生成 --> <javaClientGenerator type="XMLMAPPER" targetPackage="test.dao" targetProject="D:\Workspace\mylearn\mybatis\"> <property name="enableSubPackages" value="true" /> </javaClientGenerator> <!-- tableName:用于自动生成代码的数据库表;domainObjectName:对应于数据库表的javaBean类名,如果未指定自动基于表名生成 --> <!-- table其他属性:enableCountByExample="false";enableUpdateByExample="false";enableDeleteByExample="false";enableSelectByExample="false";selectByExampleQueryId="false";schema即为数据库名, tableName为对应的数据库表, domainObjectName是要生成的实体类 --> <table schema="hr" tableName="countries" domainObjectName="Customer"> <!-- 忽略字段 --> <ignoreColumn column="columnName" /> <!-- 无论字段是什么类型,生成的类属性都是varchar --> <columnOverride column="columnName" jdbcType="VARCHAR" /> <!-- 修改数据库列名映射的javabean属性名 --> <columnOverride column="oldColumnName" property="propertyName" /> <!-- 主键生成 如果用了这个 generatedKey ,MBG将在sqlmpper.xml里生成一个 selectKey元素在用在<insert>元素里 。 --> <generatedKey column="columnName" sqlStatement="JDBC" identity="true" /> <generatedKey column="ID" sqlStatement="MySql" identity="true" /> <!-- javabean继承的父类 --> <property name="rootClass" value="com.xxx.commons.entity.IdEntity"/> <property name="useActualColumnNames" value="true"/> </table> </context> </generatorConfiguration>
<javaModelGenerator>元素用于定义Java模型生成的属性
支持的属性:
constructorBased:默认值是false
此属性用于选择是否MyBatis生成器将生成一个类的构造函数,它接受一个值类中的每个字段。同时,SQL结果地图将建成投入使用构造函数而不是“setter”为每个字段。这个属性是只适用于MyBatis3和将被忽略了iBATIS2。这个属性可以被相应的属性在< table >元素。
immutable:默认为false
不可变,此属性用于选择是否MyBatis生成器将产生不可变模型类——这意味着类不会有“setter”方法和构造函数会接受类中每个字段的值。
trimStrings:默认值是false。
此属性用于选择是否MyBatis生成器添加代码来修剪的白色空间从字符字段从数据库返回的。这可以是很有用的,如果您的数据库将数据存储在字符字段而不是VARCHAR字段。当真正的,MyBatis生成器将插入代码来削减字符字段。
<javaClientGenerator>元素是用来定义Java客户机代码生成器的属性
Java客户机生成器用来建立Java接口和类,以便可以方便地使用生成的Java模型和XML映射文件。
对于iBATIS2目标环境,这些生成的对象采用的形式DAO接口和实现类。
对于MyBatis,生成的对象采用的形式mapper接口。
type属性:
如果targetRuntime为MyBatis3
XMLMAPPER:生成的对象将Java接口MyBatis 3。xmapper基础设施接口将会依赖生成的XML映射器文件。一般都是使用这个XMLMAPPER
<table>元素用于选择数据库中的一个表。选择的表将导致生成以下对象为每个表
tableName:必须配置 ,指定表的名称
domainObjectName:生成javabean对象的基本名称。如果未指定,MBG将自动基于表名生成。这个名字(无论是在这里指定,或自动生成)将被用来作为域类名和DAO类的名字。
enableInsert:是否生成插入语句。默认是true
enableSelectByPrimaryKey:是否通过主键生成选择语句。不管是否有这种设置,如果该表没有一个主键将不会生成。
enableUpdateByPrimaryKey:是否通过主键生成更新语句。如果该表没有主键,不管是否设置该属性,语句将不会生成。
enableDeleteByPrimaryKey:是否通过主键生成删除语句。如果该表没有主键,不管这种设置该属性,语句将不会生成。
enableDeleteByExample:是否通过example对象生成删除语句。这个声明使得许多不同的动态删除在运行时生成。
enableCountByExample:是否通过example对象生成计算行数语句。该语句将返回一个表中的行数相匹配的example。
enableUpdateByExample:是否通过example对象生成更新语句。该语句将更新一个表中相匹配的记录。
selectByPrimaryKeyQueryId:这个值将被添加到选择列表中选择通过主键的声明在本表格:“' <值>作为QUERYID”。这可以用于识别查询在DBA在运行时跟踪工具。如果你使用这样的价值,你应该指定一个唯一的id为每个不同的查询生成MBG。
selectByExampleQueryId:这个值将被添加到选择列表中选择通过例子的声明在本表格:“' <值>作为QUERYID”。这可以用于识别查询在DBA在运行时跟踪工具。如果你使用这样的价值,你应该指定一个唯一的id为每个不同的查询生成MBG。
enableSelectByExample:是否应该生成通过example的选择语句。这个声明使得许多不同的动态查询是在运行时生成。
MBG工具有5种方式运行,1、命令行方式,2、ant方式,3、Maven方式,4、基于xml配置的java方式,5、基于java配置的java方式。
1、运行cmd->java - jar jar包的文件路径 -configfile generator.xml的文件路径 -overwrite 命令。
如下:
相关推荐
- Lombok:虽然不直接生成Ibatis代码,但可以用于自动管理Java对象的getter、setter、equals、hashCode和toString方法,进一步减少手动编码。 4. 代码生成步骤: - 配置:在项目中引入相应的生成器依赖,然后配置...
标题“自动生成iBatis 实体类文件”表明我们要讨论的是如何利用MBG来自动化创建与数据库表对应的企业级Java实体类,从而提高开发效率并减少手动编码的错误。 描述中的“只需要修改数据库名称和表名即可,能更加有效...
标题 "自动生成ibatis" 指的是使用特定工具或技术来自动化创建iBATIS(一个SQL映射框架)的相关配置和代码,从而提高开发效率。这个过程通常涉及到解析数据库结构,生成对应的Java实体类、Mapper接口和XML映射文件。...
Mybatis和Ibatis通过generator自动生成代码,亲测可用 Mybatis和Ibatis通过generator自动生成代码,亲测可用 Mybatis和Ibatis通过generator自动生成代码,亲测可用
本文将围绕"Ibatis SQLServer代码自动生成"这一主题,详细讲解如何利用工具或方法自动生成与SQLServer配合的Ibatis代码,以便提高开发效率。 首先,Ibatis允许我们定义SQL语句、存储过程和高级映射,将数据库访问...
Ibatis的自动生成工具,如MyBatis Generator(MBG),是一个用于生成Java源代码的实用程序,这些源代码能够与数据库进行交互。它能够根据数据库表结构自动创建对应的Java实体类、Mapper接口和XML配置文件,从而减轻...
Ibatis生成器(也称为MyBatis Generator)允许用户通过配置文件定义规则,然后根据数据库表结构自动生成相应的Java类、Mapper接口和XML映射文件。 **自定义Ibatis生成器的核心知识点:** 1. **MyBatis框架**:...
标题 "A code generator for iBATIS" 指的是一款为iBATIS框架自动生成代码的工具。iBATIS是一个开源的Java库,它允许程序员将SQL语句直接嵌入到Java代码中,实现了数据库访问层(DAO)的简化。这款代码生成器能够...
例如,对于分页查询,Ibatis Generator会自动生成如下代码: ```xml SELECT * FROM your_table_name != null and example.limit != null"> LIMIT #{example.start}, #{example.limit} WHERE ... ``` 这里...
标题 "iBatis 代码生成" 指的是利用特定工具或方法自动生成 iBatis 框架相关的代码,这通常包括 SQL 映射文件、DAO 接口以及对应的实现类等。iBatis 是一个优秀的 Java ORM(对象关系映射)框架,它允许开发者将 SQL...
总的来说,Rapid-Generator v3.9 是Java开发者的得力助手,通过自动化代码生成,减少了手动编写重复代码的时间,提升了开发速度和代码质量。无论你是初学者还是经验丰富的开发者,它都能帮助你在项目开发中更加...
6. **代码生成器(Code Generator)**:iBatis提供了代码生成工具ibator,它可以自动生成基于数据库表的Bean、Dao和SqlMap文件,极大地提高了开发效率。ibator可以根据配置文件自动读取数据库中的表结构,然后生成...
该插件的优势在于它能够从数据库表的注释中智能提取中文信息,自动生成代码,并且在生成过程中保留了中文注释,这样既保证了代码的可读性,也便于团队协作时的理解和沟通。此外,它还支持主流的持久层框架,如...
在本项目中,自动生成的Service层代码可以包含对业务逻辑的封装,使得业务处理更加模块化,便于维护和测试。 iBatis,作为一个轻量级的持久层框架,它将SQL语句与Java代码分离,提供了一种灵活的映射机制。通过XML...
为了进一步提高开发效率,开发者们设计了一系列的代码生成工具,如"Ibatis Helper"和"generator"等,它们能够自动生成基于Ibatis或Mybatis的CRUD(Create, Read, Update, Delete)代码,从而减少手动编写SQL和实体类...
ibatis ibator eclipes插件 代码生成器 代码自动生成工具 下载后将features和plugins两个文件夹下的文件拷贝到eclipes安装路径下对应的features和plugins两个文件夹下即可
先安装 eclipse插件安装地址:http://mybatis.googlecode.com/svn/sub-projects/generator/trunk/eclipse/UpdateSite/ 然后再下载本项目,如果需要离线插件,请到笔者资源库查找 ...会自动生成到该项目中
通过简单的配置,Ibator可以根据数据库表的信息自动生成相应的Java代码,包括Mapper接口、Mapper XML文件、DAO实现类以及实体类等,从而减轻开发者的负担。 首先,安装Ibator插件。下载名为"IbatorForEclipse1.2.1...
MyBatis Generator(MBG)是一个强大的代码生成器,它为MyBatis和iBATIS提供了自动生成Java源代码和XML映射文件的能力。这个工具极大地简化了开发过程,减少了手动编写重复的 CRUD(创建、读取、更新、删除)操作...