All Downloads are FREE. Search and download functionalities are using the official Maven repository.

derepositories.jcommons-tools-mbg.1.0.v201602292337.source-code.README.xml Maven / Gradle / Ivy

The newest version!
			Mybatis Generator 工具的辅助工具
背景
		项目使用了Mybatis框架来作为与数据库进行交互。
	项目中与数据库交互的代码(Entity.java, Mapper.java, Mapper.xml),
	都是通过Mybatis Generator(下面简称MBG)工具来生成的。
	在项目的整个生命周期中,数据库或多或少都会有些改动。每次改动之后都需要使用
	MBG工具来重新生成与数据库交互所需的代码。
	这样就会出现一个问题:
		在Entity.java, Mapper.java, Mapper.xml 手动编写的代码,在使用MBG工具生成代码自后,都会被覆盖。
	那样怎么做到在MBG生成代码之后,能够保留原先手动编写的代码。	

需求
	1. 在使用MBG生成代码前,对上一次MBG生成的代码进行备份
	2. 在使用MBG生成代码失败时,还原最新的MBG的备份
	3. 在每次使用MBG生成代码之前,把在原先MBG生成代码的基础上手动编写的代码记录下来
		记录详细规则:
	4. 在每次使用MBG生成代码之后,都能够把上次手动修改的代码添加进去	
		

设计
	核心问题:
		a.怎么获取在MBG生成代码的基础上手动编写的代码?
			1.扫描MBG生成的代码文件,查找手动编写的代码内容
				定义手编写代码区域的其实和结束边界
				custom code start limit
					.*CUSTOM_CODE_START.*
				custom code end limit
					.*CUSTOM_CODE_END.*

			2.把扫描的记录存放到一个文件
				#文件1全路径
				手动编写代码内容

				#文件2全路径
				手动编写代码内容

				#文件n全路径
				手动编写代码内容

		b.获取到手动编写的代码后,怎么在MBG自动生成代码后添加进去?
			1.读取手动代码记录文件
				遍历每一个文件对应的手动编码的代码内容
				追加到该文件的末尾的上一行
					.java文件
					.xml文件

	以配置文件的形式来使用该辅助工具
		mybatisGeneratorConfig.xml
		customConfig.xml

接口
	加载配置
		xml -> bean
		使用XStream组件就行解析
	
	合并配置
		对table就行合并
	
	保存自定义代码
	
	生成代码
		删除需要更新的文件
		生成需要更新的文件
		添加自定义代码到新的文件
		

V1.1版本
	把customConfig.xml 合并到 generatorConfig.xml(会有DTD解析错误,放到以后的版本解决)
	把mbgConfig.xml 修改为 generatorConfig.xml,遵循Mybatis Generator 默认的命名规则
	增加备份、恢复功能
		在生成新的代码前,对之前生成的代码就行备份
			/mbg
				/时间戳
					/javaModel 	(Entity.java)
					/sqlMap		(Mapper.xml)
					/javaClient	(Mapper.java)
					customContent
		生成新代码失败后,回滚所有操作,恢复操作前的状态
			发生异常,进行回滚

v1.2版本 
	添加Maven插件版本
	调整框架结构,做到容易扩展

https://github.com/binshaoqq/Nirvana.git

转让时间规则:
	转让开始时间
		大于当前时间
		不超过第二天结束时间
	转让结束时间
		大于转让开始时间
		与转让开始时间在同一天


mvn jcommons-plugins-mbg:touch

// 测试覆盖
cobertura-maven-plugin

// maven插件教程
https://maven.apache.org/guides/plugin/guide-java-plugin-development.html
http://www.tuicool.com/articles/uaqyAn
http://www.jianshu.com/p/a8f5830bbd98


mvn -Dmaven.surefire.debug="-Xdebug" clean test




© 2015 - 2025 Weber Informatics LLC | Privacy Policy