Oracle语句生成C#映射类代码原理
摘 要:在B/S或C/S数据库开发过程中,我们往往需要借助第三方工具加快开发进度。为此提出了一种自动生成映射类的原理和方法。通过SQL与Oracle的数据库字典创建函数,获取映射类代码。根据提出的方法,在Oracle10g中设计并实现了简单的C#映射类代码自动生成函数。实验分析结果表明,该方法具有较强的实用性和可操作性。
关键词:Oracle数据库;函数;自动生成;C#;映射类;代码
1 引言
在Java Web开发中,我们常用到诸如Hibernate之类的框架,来实现网站的快速、高效开发。类似的,在开发中也经常用到一些架构来实现快速、高效的开发。本文涉及到的是 + Oracle 10g 开发过程中映射类的自动生成原理和实现方法。
Oracle本身具有强大的功能提供给用户使用,但本文提及的方法并不过分依赖这一点,而是利用简单的SQL查询语句和自定义的Oracle函数,来解析C#映射类代码生成的原理。Oracle提供了很多字典表来保存表的基本信息,所以可根据这些字典得到表的字段信息加以利用,然后通过字符串拼接得到结果。
2 Oracle函数设计思路
Oracle数据库中提供了很多字典表来保存表的基本信息,所以可根据这些字典得到表的字段信息。user_tab_columns表包含了表的一些基本信息:TABLE_NAME、COLUMN_NAME、DATA_TYPE、DATA_TYPE_MOD、DATA_TYPE_OWNER、DATA_LENGTH、DATA_PRECISION、DATA_SCALE、NULLABLE、COLUMN_ID、DEFAULT_LENGTH、————————————————
DATA_ DEFAULT、NUM_DISTINCT、LOW_VALUE、HIGH_VALUE、DENSITY、NUM_NULLS、NUM_BUCKETS、LAST_ANALYZED、SAMPLE_SIZE、CHARACTER_SET_NAME、CHAR_COL_DECL_LENGTH、GLOBAL_STATS、USER_STATS、AVG_COL_LEN、CHAR_LENGTH、CHAR_USED、V80_FMT_IMAGE、DATA_UPGRADED、HISTOGRAM;Col表中包含的信息:TNAME、COLNO、CNAME、COLTYPE、WIDTH、SCALE、PRECISION、NULLS、DEFAULTVAL、CHARACTER_SET_NAME。
对于一般简单的应用,上面提到的字段中有很多将不会被使用到。user_tab_columns表中一般使用的有COLUMN_NAME、DATA_TYPE、DATA_PRECISION、DATA_SCALE、NULLABLE、DATA_ DEFAULT等等。类属性命名采用骆驼命名法,根据COLUMN_NAME确定命名的单词,使用Oracle的字符串处理函数来实现命名;是确定为 普里斯. Oracle Database 10g SQL开发指南. 出版社: 清华大学出版社,2005