情景如下,这两天在做一个分布式的项目,使用了Alibaba的dubbo作为通信工具,zookeeper作为register,由于dubbo是基于socket协议的,所以在进行pojo传输的时候报了异常,因为pojo没有实现序列化接口,就无法进行基于二进制的序列化传输。报错如下。
但是很麻烦的一件事是如果逆向工程生成的pojo全部自己实现序列化会很麻烦,所以看了一下mybatis的插件,发现有一个可以自动给所有pojo实现序列化接口(example除外)。
具体代码如下:
1 <?xml version="1.0" encoding="UTF-8"?>
2 /p>
4 "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
5
6
7
8
9
10
11
12
13
14
15
16
17
18 connectionURL="jdbc:mysql://localhost:3306/xxxxxxx" userId=" "
19 password=" ">
20
21
23
24
25
26
27
28
30
31
32
33
34
35
36
37 targetProject=".\src">
38
39
40
41
42
43 targetPackage="cn.xxxxxxx.mapper" targetProject=".\src">
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
java代码如下:
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.mybatis.generator.api.MyBatisGenerator;
import org.mybatis.generator.api.dom.java.FullyQualifiedJavaType;
import org.mybatis.generator.config.Configuration;
import org.mybatis.generator.config.xml.ConfigurationParser;
import org.mybatis.generator.exception.XMLParserException;
import org.mybatis.generator.internal.DefaultShellCallback;
public class GeneratorSqlmap {
public void generator() throws Exception {
List warnings = new ArrayList();
boolean overwrite = true;
// 指定 逆向工程配置文件
File configFile = new File("generatorConfig.xml");
ConfigurationParser cp = new ConfigurationParser(warnings);
Configuration config = cp.parseConfiguration(configFile);
DefaultShellCallback callback = new DefaultShellCallback(overwrite);
MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
myBatisGenerator.generate(null);
}
public static void main(String[] args) throws Exception {
try {
GeneratorSqlmap generatorSqlmap = new GeneratorSqlmap();
generatorSqlmap.generator();
} catch (Exception e) {
e.printStackTrace();
}
}
}
需要的jar如下:点击下载