MyBatis Generator 是 MyBatis 官方推出的持久层代码自动化生成工具,通过解析数据库表结构自动生成实体类(POJO)、Mapper 接口及 XML 映射文件,可快速构建标准化 CRUD 操作逻辑,显著减少基础代码开发成本。为简化时序数据库场景下的集成流程,IoTDB 官方基于此工具扩展推出 IoTDB-Mybatis-Generator,针对 IoTDB 的时序数据模型特性进行深度适配,能够自动生成符合时序存储语义的实体类,mapper接口及对应的mapper.xml文件,为 IoTDB 的高效接入提供了标准化、可复用的工程实践方案。
IoTDB: >=2.0.2
mybatis-generator-plugin: >=2.0.3
iotdb-jdbc: >=2.0.3
安装并启动 IoTDB , 可参考 IoTDB 快速入门
获取插件
方式一:直接引用 Maven 依赖
方式二:通过克隆插件源码,进行本地依赖安装。
git clone https://github.com/apache/iotdb-extras.git cd .\mybatis-generator\ mvn clean install
<properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <build> <plugins> <plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> <version>1.4.2</version> <dependencies> <dependency> <groupId>org.apache.iotdb</groupId> <artifactId>mybatis-generator-plugin</artifactId> <version>{lastest_version}</version> <!--例如: <version>2.0.3</version> --> </dependency> </dependencies> <configuration> <verbose>true</verbose> <overwrite>true</overwrite> <configurationFile>src/main/resources/generatorConfig.xml</configurationFile> </configuration> </plugin> </plugins> </build>
generatorConfig.xml放到 resources 目录下,generatorConfig.xml内容可参考如下模板,其中可维护项主要涉及jdbcConnection、javaModelGenerator、sqlMapGenerator、javaClientGenerator、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> <classPathEntry location="/apache/iotdb/iotdb-client/jdbc/target/iotdb-jdbc-2.0.4-SNAPSHOT-jar-with-dependencies.jar"/> <!-- mvn mybatis-generator:generate hierarchical/flat--> <context id="myBatis3Simple" targetRuntime="MyBatis3Simple" defaultModelType="flat"> <plugin type="org.apache.iotdb.mybatis.plugin.LombokPlugin"/> <plugin type="org.apache.iotdb.mybatis.plugin.BatchInsertPlugin"/> <plugin type="org.apache.iotdb.mybatis.plugin.SerializablePlugin"/> <plugin type="org.mybatis.generator.plugins.VirtualPrimaryKeyPlugin"/> <commentGenerator type="org.apache.iotdb.mybatis.plugin.generator.SwaggerCommentGenerator"> <property name="suppressAllComments" value="true"/> <property name="suppressDate" value="true"/> <property name="addRemarkComments" value="true"/> </commentGenerator> <jdbcConnection driverClass="org.apache.iotdb.jdbc.IoTDBDriver" connectionURL="jdbc:iotdb://127.0.0.1:6667/database1?sql_dialect=table" userId="root" password="root"/> <javaTypeResolver type="org.apache.iotdb.mybatis.plugin.generator.resolver.IoTDBJavaTypeResolver"> <property name="forceBigDecimals" value="false"/> </javaTypeResolver> <javaModelGenerator targetPackage="org.apache.iotdb.mybatis.plugin.model" targetProject="src/main/java"> <property name="trimStrings" value="true"/> </javaModelGenerator> <sqlMapGenerator targetPackage="org.apache.iotdb.mybatis.plugin.xml" targetProject="src/main/java"> </sqlMapGenerator> <javaClientGenerator type="XMLMAPPER" targetPackage="org.apache.iotdb.mybatis.plugin.mapper" targetProject="src/main/java"> </javaClientGenerator> <table schema="database1" tableName="table1" domainObjectName="table1" enableSelectByPrimaryKey="true" enableInsert="true" enableDeleteByPrimaryKey="true"> <property name="virtualKeyColumns" value="time,region,plant_id,device_id,model_id,maintenance,temperature,humidity,status,arrival_time"/> </table> </context> </generatorConfiguration>
mvn mybatis-generator:generate
# You can see the target file in your Project org/apache/iotdb/mybatis/plugin/model/table1.java org/apache/iotdb/mybatis/plugin/mapper/table1Mapper.java org/apache/iotdb/mybatis/plugin/xml/table1Mapper.xml
详细的使用示例可参考源码 examples/mybatis-generator