Easy Mapper Processor

An annotation processor for MyBatis TypeHandler generating.

License

License

GroupId

GroupId

com.iakuil
ArtifactId

ArtifactId

ez-mapper-processor
Last Version

Last Version

0.0.2-RELEASE
Release Date

Release Date

Type

Type

jar
Description

Description

Easy Mapper Processor
An annotation processor for MyBatis TypeHandler generating.
Project URL

Project URL

https://github.com/liukai237/ez-mapper-processor
Source Code Management

Source Code Management

https://github.com/liukai237/ez-mapper-processor

Download ez-mapper-processor

How to add to project

<!-- https://jarcasting.com/artifacts/com.iakuil/ez-mapper-processor/ -->
<dependency>
    <groupId>com.iakuil</groupId>
    <artifactId>ez-mapper-processor</artifactId>
    <version>0.0.2-RELEASE</version>
</dependency>
// https://jarcasting.com/artifacts/com.iakuil/ez-mapper-processor/
implementation 'com.iakuil:ez-mapper-processor:0.0.2-RELEASE'
// https://jarcasting.com/artifacts/com.iakuil/ez-mapper-processor/
implementation ("com.iakuil:ez-mapper-processor:0.0.2-RELEASE")
'com.iakuil:ez-mapper-processor:jar:0.0.2-RELEASE'
<dependency org="com.iakuil" name="ez-mapper-processor" rev="0.0.2-RELEASE">
  <artifact name="ez-mapper-processor" type="jar" />
</dependency>
@Grapes(
@Grab(group='com.iakuil', module='ez-mapper-processor', version='0.0.2-RELEASE')
)
libraryDependencies += "com.iakuil" % "ez-mapper-processor" % "0.0.2-RELEASE"
[com.iakuil/ez-mapper-processor "0.0.2-RELEASE"]

Dependencies

compile (7)

Group / Artifact Type Version
org.javassist : javassist jar 3.27.0-GA
org.mybatis : mybatis jar 3.5.6
com.fasterxml.jackson.core : jackson-core jar 2.12.0
com.fasterxml.jackson.core : jackson-databind jar 2.10.5
com.google.auto.service : auto-service-annotations Optional jar 1.0-rc7
com.google.auto.service : auto-service jar 1.0-rc7
org.apache.maven : maven-model jar 3.6.0

test (2)

Group / Artifact Type Version
org.junit.jupiter : junit-jupiter-api jar 5.7.0
org.hamcrest : hamcrest-all jar 1.3

Project Modules

There are no modules declared in this project.

Build Status Maven Central

Easy Mapper Processor

--- 一个基于MyBatis的注解扩展 ---

目前支持的功能

  • JSON字段映射,自动生成JSON字段TypeHandler。

使用手册

配置依赖

    <dependency>
        <groupId>com.iakuil</groupId>
        <artifactId>ez-mapper-processor</artifactId>
        <version>0.0.2-RELEASE</version>
    </dependency>

配置注解参数

和Lombok等注解处理器类似的配置:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.8.1</version>
    <configuration>
        <annotationProcessorPaths>
            <path>
                <groupId>com.iakuil</groupId>
                <artifactId>ez-mapper-processor</artifactId>
                <version>0.0.2-RELEASE</version>
            </path>
        </annotationProcessorPaths>
    </configuration>
</plugin>

配置JSON字段

@JsonEntity
public class Bar {
    private String name;
    private String addr;
    // getters and setters
}

重新编译后,target/classes目录下自动生成的TypeHandler:

@MappedTypes({Bar.class})
@MappedJdbcTypes({JdbcType.VARCHAR})
public class BarTypeHandler extends AbstractJsonTypeHandler<Bar> {
    public BarTypeHandler() {
    }
}

MyBatis配置文件

mybatis:
  type-handlers-package: com.yourdomain.sample.yourpackage

局限性

如果是多模块的Maven工程,整个工程中不能有包名+类名完全一致的JSON映射对象。
比如:A模块有一个org.sample.Foo,B模块也有一个org.sample.Foo,并且两个类都添加了@JsonEntity注解,编译时就会报错:Too many classes: org.sample.Foo

Copyright (c) 2021 iakuil.com

Versions

Version
0.0.2-RELEASE
0.0.1-RELEASE