mybatis-generator,是根據數據庫表、字段反向生成實體類等代碼文件。我在國慶時候,沒事剖析了mybatis-generator-core源碼,寫了相當詳細的中文注釋,可以去看看。目前我剖析修改的是1.3.5版本。
1.剖析org.mybatis.generator.plugins.ToStringPlugin源碼
2.剖析org.mybatis.generator.plugins.MapperConfigPlugin源碼
3.剖析org.mybatis.generator.api.ShellRunner源碼,Main入口
3.剖析org.mybatis.generator.config.xml.ConfigurationParser源碼,配置解析器,用於對generatorConfig.xml配置文件的解析
4.剖析org.mybatis.generator.config.Context源碼,封裝元素內容
1.數據表的備注信息的添加:在FullyQualifiedTable類中添加remark字段,並在org.mybatis.generator.internal.db.DatabaseIntrospector類calculateIntrospectedTables方法,添加一段獲取數據庫備注的代碼
1 //設置數據庫表的備注信息
2 //start
3 Statement stmt = this.databaseMetaData.getConnection().createStatement();
4 ResultSet rs = stmt.executeQuery(
5 new StringBuilder()
6 .append("SHOW TABLE STATUS LIKE '")
7 .append(atn.getTableName())
8 .append("'")
9 .toString());
10 while (rs.next())
11 table.setRemark(rs.getString("COMMENT"));
12 closeResultSet(rs);
13 stmt.close();
14 //end
2..非model類Example的注釋方法的添加,方法名addExampleClassComment(TopLevelClass topLevelClass)
3.重構部分org.mybatis.generator.codegen.mybatis3.IntrospectedTableMyBatis3Impl包裡getGeneratedJavaFiles方法
4.詳細中文注釋的添加,入口包函數在org.mybatis.generator.api.ShellRunner
5.生成的中文注釋信息可在修DefaultCommentGenerator類修改