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類修改