欢迎来到天天文库
浏览记录
ID:8837138
大小:173.50 KB
页数:14页
时间:2018-04-09
《自定义myeclipse逆向工程模板的代码自动生成规则》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、在项目中,往往会用到myeclipse的自动生成代码功能,比如本人项目用其从数据库表生成对应的实体类和映射文件,但是,由于数据库表字段名称很不规范,无业务含义很难认,用myeclipse默认的规则生成得到的实体属性名是驼峰命名,很难由此推断出对应的数据库表字段名,故项目制定统一规范,实体类属性名为表字段名小写。需要修改默认的代码生成规则。网上找了不少资料以及文档,方法总结如下:方法一:修改myeclipse中自动生成代码的模板文件在myeclipse目录中搜索关键字"templates",可以找到一个如myeclipse_templates_6.0.1GA.zip的包,解压即可得到自动生成代码
2、用到的所有模板文件,如需修改其中几个模板文件,则按原目录结构只留下修改的模板文件。在HibernateReverse-Engineering的对话框中,钩选Usecustomtemplates,输入你存放修改后模板文件的文件夹(custom_myeclipse_templates)路径,就可以使用到自定义的模板了。具体看参考该包的说明文档。方法二:集成并自定义反转策略类自定义一个类,继承自org.hibernate.cfg.reveng.DelegatingReverseEngineeringStrategy,覆盖其中生成代码的方法。具体参考方法一中那个包的说明文档。我把其中一个例子贴出来如下
3、,在自动生成的所有实体属性名前加"ME_"前缀下:5.6singacustomreverseengineeringstrategyAddtheMyEclipsePersistenceToolslibrarytoyourproject.RightclickyourprojectandselectProperties.OntheJavaBuildPathpage,chooseAddLibrary...ontheLibrariestab.ChooseMyEclipseLibrariesandthenMyEclipsePersistenceTools.PressFinish.1Figure16.Add
4、ingtheMyEclipsePersistenceToolslibrary2Createanewclassinyourprojectwhichextendstheorg.hibernate.cfg.reveng.DelegatingReverseEngineeringStrategyclass.3Definethesingleargumentconstructorandoverrideamethodofinterest,forexample,columnToPropertyName.Here'sanexamplewhichprefixesallgeneratedproperteswith"M
5、E_"MyStrategy.javapackagecom.genuitec.hibernate;importorg.hibernate.cfg.reveng.DelegatingReverseEngineeringStrategy;importorg.hibernate.cfg.reveng.ReverseEngineeringStrategy;importorg.hibernate.cfg.reveng.TableIdentifier;publicclassMyStrategyextendsDelegatingReverseEngineeringStrategy{publicMyStrate
6、gy(ReverseEngineeringStrategystrategy){super(strategy);}publicStringcolumnToPropertyName(TableIdentifiertable,StringcolumnName){return"ME_"+super.columnToPropertyName(table,columnName);}}Figure17.MyStrategy.javaSourceCodeListing1Onpage2ofthereverseengineeringwizard,specifytheclassyoujustcreatedFigur
7、e18.Specifyingthereverseengineeringstrategy附资料一:自定义Struts的JSP模板和Hibernate的DAO模板这一阵子在MyEclipse里做项目,用到了Struts和hibernate功能,起初,对自动生成赞不绝口,但后来,发现自动生成的代码也有不方便的地方,比如:一Struts当new一个JSP,使用StandardJSPusingStruts1
此文档下载收益归作者所有