今天在整理文件时,无意中翻到一个网站源码,是很久以前下载的。里面采用了SubSonic的ORM架构。
于是用Relector查看了下它的代码。呵呵。发现其结构很清晰,实现方式也一目了然。它主要是根据表的Schema来拼凑各种SQl语句,并且采用命令参数的形式赋值,这样避免sql注入的危险。很多模仿ORM的初学者在这一点处理的不好。
大致看完后,感觉其太繁琐了些,于是一个大胆的构思冒了出来。
笔者在之前已有自己的一个ORM架构,类似iBatis的风格,自己用起来得心应手,再加之已在正式的系统上采用,所以成熟度也比较高,其运行效率也是非比寻常,几乎跟裸体的ADO.NET不差上下。
但是总觉得有点遗憾,比如只修改某一个表的某一个字段时,必须在配置文件里定义一条Sql。然后把sqlid传入。这样开发的时候就经常在配置文件和开发页面之间相互切换,比较麻烦。
今天偶然熟悉了一下Subsonic,感觉它很简练,刚好可以满足上面的需求。于是想着再造一个Subsonic的轮子,当然不会全盘照搬了,而是提炼其思想,用自己的方式去实现,将iBatis和Subsonic的两种风格完美地统一起来。
估计这将是一个两天的工作量,呵呵。有空慢慢写吧。
于是用Relector查看了下它的代码。呵呵。发现其结构很清晰,实现方式也一目了然。它主要是根据表的Schema来拼凑各种SQl语句,并且采用命令参数的形式赋值,这样避免sql注入的危险。很多模仿ORM的初学者在这一点处理的不好。
大致看完后,感觉其太繁琐了些,于是一个大胆的构思冒了出来。
笔者在之前已有自己的一个ORM架构,类似iBatis的风格,自己用起来得心应手,再加之已在正式的系统上采用,所以成熟度也比较高,其运行效率也是非比寻常,几乎跟裸体的ADO.NET不差上下。
但是总觉得有点遗憾,比如只修改某一个表的某一个字段时,必须在配置文件里定义一条Sql。然后把sqlid传入。这样开发的时候就经常在配置文件和开发页面之间相互切换,比较麻烦。
今天偶然熟悉了一下Subsonic,感觉它很简练,刚好可以满足上面的需求。于是想着再造一个Subsonic的轮子,当然不会全盘照搬了,而是提炼其思想,用自己的方式去实现,将iBatis和Subsonic的两种风格完美地统一起来。
估计这将是一个两天的工作量,呵呵。有空慢慢写吧。
id 博主 = [[KILONET.CNBLOGS.COM alloc] initWithValue:@"天堂向右,我依然向左"
网名:@"老舟"
兴趣:@"影音,阅读"
动态:@"系统架构设计,Android通信模块开发"
网址:@"http://kilonet.cnblogs.com"
签名:@"--------------------------------------------------
Stay Hungry , Stay Foolish
求 知 若 渴,处 事 若 愚
--------------------------------------------------"
]; // Never Release