MyBatis Generator (MBG) 是一个Mybatis的代码生成器 MyBatis 和 iBATIS. 他可以生成Mybatis各个版本的代码,和iBATIS 2.2.0版本以后的代码。 他可以内省数据库的表(或多个表)然后生成可以用来访问(多个)表的基础对象。 这样和数据库表进行交互时不需要创建对象和配置文件。 MBG的解决了对数据库操作有最大影响的一些简单的CRUD(插入,查询,更新,删除)操作。 您仍然需要对联合查询和存储过程手写SQL和对象。
- 在dao层的pom中引入maven插件
<plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> <version>1.3.5</version> <configuration> <configurationFile>src/main/resources/generatorConfig.xml</configurationFile> </configuration> <dependencies> <!-- 数据库驱动 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.34</version> </dependency> <dependency> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-core</artifactId> <version>1.3.5</version> </dependency> </dependencies> </plugin>
- 在dao的src/main/resource中添加配置文件generatorConfig.xml
<?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> <context id="DB2Tables" targetRuntime="MyBatis3" defaultModelType="flat"> <commentGenerator> <!--数据库注释支持--> <property name="addRemarkComments" value="true"/> <!--注释中时间格式--> <property name="dateFormat" value="yyyy-MM-dd HH:mm:ss"/> </commentGenerator> <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf-8" userId="root" password="123456"> </jdbcConnection> <javaTypeResolver > <property name="forceBigDecimals" value="false" /> </javaTypeResolver> <!--model DO对象--> <javaModelGenerator targetPackage="com.test.dao.data" targetProject="src/main/java"> <property name="enableSubPackages" value="true" /> </javaModelGenerator> <!--SQL Mapper--> <sqlMapGenerator targetPackage="mybatis/mapper" targetProject="src/main/resources"> <property name="enableSubPackages" value="true" /> </sqlMapGenerator> <!--dao java代码--> <javaClientGenerator type="XMLMAPPER" targetPackage="com.test.dao" targetProject="src/main/java"> <property name="enableSubPackages" value="true" /> </javaClientGenerator> <!--表名和Java对象名,支持父类,必须有一个enable为true--> <table tableName="employee" domainObjectName="EmployeeDO" mapperName="EmployeeDAO" enableInsert="true" enableUpdateByPrimaryKey="false" enableSelectByPrimaryKey="true" enableDeleteByPrimaryKey="false" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"> <property name="rootClass" value="com.test.BaseDO"/> </table> </context> </generatorConfiguration>
- 在spring配置文件中引入相关的bean
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <property name="configLocation" value="classpath:mybatis/mysql-sqlmap.xml" /> </bean> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.test.dao" /> </bean>
- 运行命令生成
1、进入dao层 2、执行命令:mvn mybatis-generator:generate 3、如果已经存在相同文件,不会覆盖当前文件,而是生成新的备份文件如AppDO.java.1 4、强制覆盖相同文件执行 mvn -Dmybatis.generator.overwrite=true mybatis-generator:generate
- 生成代码
1、在com.test.dao.data中生成EmployeeDO实体类 2、在com.test.dao中生成EmployeeDAO接口类 3、在src/main/resources/mybatis/mapper中生成EmployeeDAO.xml文件