Oracle代码生成工具之数据库表及字段名称转义

3、自定义表、字段名称的别名

奇迹,统一规则变化的别名不自然是大家所急需的,那么请使用代码生成工具的别名设置操作即可把某部表名、字段名设置为您想要的名目,如下操作所示。

1)表别名修改

Oracle 1

Oracle 2

2)字段别名修改

Oracle 3

4、在代码工具的自定义模板中运用字段转义新闻

代码生成工具Database2夏普提供了很好的自定义模板操作交互功效,大家只需求在模板文件中书写NVelocity的模版代码就足以出口各样五花八门的代码的,如下边图就是自定义模板列表界面,其中左边列出一些基础的例证模板代码,我们可以参见学习,在树形目录中确立和谐的沙盘文件和模板代码。

Oracle 4

行使自定义模板代码的目的,就是要运用数据库的元数据音信来变化复杂而有规律的代码片段或者文件的。

大家注意到模板代码,其中使用到的数据库音讯及遍历操作等。

        /// <summary>
        /// 初始化
        /// </summary>
        /// <param name="info">实体类信息</param>
        private void InitData(${ClassName}Info info)
        {
#foreach($ColumnInfo in ${TableInfo.ColumnList.Values})        
#if(${ColumnInfo.AutoIncrement} == false)    
#if(${ColumnInfo.NetType} == "System.String" )
            this.txt${ColumnInfo.Name.Alias.ToCapit()}.Text = info.${ColumnInfo.Name.Alias.ToCapit()};
#elseif(${ColumnInfo.NetType} == "System.DateTime")
            this.txt${ColumnInfo.Name.Alias.ToCapit()}.Text = info.${ColumnInfo.Name.Alias.ToCapit()}.ToShortDateString();
#else
            this.txt${ColumnInfo.Name.Alias.ToCapit()}.Text = info.${ColumnInfo.Name.Alias.ToCapit()}.ToString();
#end
#end ##endif
#end
        }        

        /// <summary>
        /// 获取数据
        /// </summary> 
        private ${ClassName}Info GetData()
        { 
            ${ClassName}Info info = new ${ClassName}Info();
#foreach($ColumnInfo in ${TableInfo.ColumnList.Values})        
#if(${ColumnInfo.AutoIncrement} == false)     
#if(${ColumnInfo.NetType} == "System.Decimal" )
            info.${ColumnInfo.Name.Alias.ToCapit()} = Helper.SafeConvertDecimal(this.txt${ColumnInfo.Name.Alias.ToCapit()}.Text);
#elseif(${ColumnInfo.NetType} == "System.DateTime")    
            info.${ColumnInfo.Name.Alias.ToCapit()} = Helper.SafeConvertDate(this.txt${ColumnInfo.Name.Alias.ToCapit()}.Text);        
#else
            info.${ColumnInfo.Name.Alias.ToCapit()} = this.txt${ColumnInfo.Name.Alias.ToCapit()}.Text;   
#end          
#end ##endif
#end
         }

内部的${ColumnInfo.Name.Alias.ToCapit()}为别名,而${ColumnInfo.Name.Name.ToCapit()}为数据库表字段真实名称。
如上模板,大家接纳数据库表生成代码,就足以收获上面的专业赋值及取得内容的代码了。

        /// <summary>
        /// 初始化
        /// </summary>
        /// <param name="info">实体类信息</param>
        private void InitData(GroupInfo info)
        {
             this.txtEditor.Text = info.Editor.ToString();
             this.txtEdittime.Text = info.Edittime;
             this.txtName.Text = info.Name;
             this.txtOutGroup.Text = info.OutGroup;
             this.txtGroupOrder.Text = info.GroupOrder;
             this.txtDeptName.Text = info.DeptName;
             this.txtUpperDept.Text = info.UpperDept.ToString();
             this.txtGrade.Text = info.Grade.ToString();
             this.txtRemark.Text = info.Remark;
         }        

        /// <summary>
        /// 获取数据
        /// </summary> 
        private GroupInfo GetData()
        { 
             GroupInfo info = new GroupInfo();
             info.Editor = this.txtEditor.Text;   
             info.Edittime = this.txtEdittime.Text;   
             info.Name = this.txtName.Text;   
             info.OutGroup = this.txtOutGroup.Text;   
             info.GroupOrder = this.txtGroupOrder.Text;   
             info.DeptName = this.txtDeptName.Text;   
             info.UpperDept = this.txtUpperDept.Text;   
             info.Grade = this.txtGrade.Text;   
             info.Remark = this.txtRemark.Text;   
          }

上述就是代码生成工具Database2Sharp的数额库表及字段名称转义的智能处理以及利用,如若驾驭应用NVelocity的主干语法,结合代码工具提供的数据库元数据音讯,大家得以做的越多,做的更好。希望这几个工具对你的开支有接济。

2、尤其状态下的表、字段名称转义

但大家偶尔反向工程的时候,可能数据库是从Oracle到SQLServer的,或者偶尔考虑多数据库包容的动静,那么可能SQLServer的表及字段的称号或者Oracle的命名规则的,如下SQLServer例子所示。

Oracle 5

对于以上的数据库新闻,假使没有转义数据库名称,那么就给生成代码造成很大的麻烦,因为实体类属性名称,类名称都可能是Oracle风格的大写的评释,非凡不便利阅读。

但代码生成工具已经扩充了智能识别字段名称的逻辑,对于那种从Oracle过来的数据库命名规则,大家也能客观生成对应的代码,如上图的左边,它早已判定使用了Oracle的命名规则来处理别名了。

Oracle 6

这样大家转变的代码,就是很友好的命名风格了。

Oracle 7

在上篇小说《代码生成工具之界面快捷变动》中介绍过了代码生成工具Database2Sharp是怎么疾速生成所需的Web界面以及各个Winform界面,其中囊括生成即可运行的Web界面效果,Winform布局信息的变迁。那几个类似很简短的界面元素生成,其实是须要添加的数据库元数据新闻作为基础的,而且对两样的数据库处理要有所不一样。本文介绍不一样数据库之间元数据的处理差异,以及哪些代码生成工具Database2Sharp如何同盟处理那么些题材的。

1、常规的多寡库表、字段名称的转义

譬如,大家要求得到表的别名,对于SqlServer一般设计的时候是拔取Pascal命超模式,所以表名称不需求转义,但对于Oracle表名称,基本上都是以大写来定名,而且表名称不是采纳Pascal格局,而是三个词之间选拔下划线“_”来分隔的,如DEPT_NAME那样的称谓。

貌似的话,我们为每种的数据库定义一套转义规则,来为表、字段名称伸张一个别名字段,如Oracle的DEPT_NAME大家设法让它别名突显为DeptName就能够了,SQLServer的是因为一般名称都是Pascal的,大家得以不用转义,数据库表、字段名称为DeptName,大家就封存它看作别名DeptName即可。

本人的代码生成工具的元数据属性就是那般的方式,有一个NameElement对象,就含有Name和Alias四个特性,如下所示。

Oracle 8

相关文章