2009年2月27日

      ORMAPPING出来已经很多年了,之前一直有关注,但一直没有应用到项目中去,众所周知,ORMAPPING的性能是很大一个问题,虽然它节省代码量,为程序员做了很多工作。而且ORMAPPING主要应用在JAVA领域,.NET领域用到的少之又少,最近公司要做一个内部的资产管理系统,我就打算用ORMAPPING来做,对几种ORMAPPING的框架我进行了比较,第一,nhibernate这个我相信大家比较熟悉了,nhibernate在JAVA领域已经应用相当广泛了,nhibernate最持久层性能稳定,本来我也打算采用,但后来选择放弃,主要是他生成的一堆XML我很头疼,不大好管理,这里很多人会给nhibernate辩解,我一直以为nhibernate是JAVA的东西,害怕性能问题。还有一个ORMAPPING的框架ibatis,这个其实也不错,但最终我选择了XPO,XPO是著名软件公司devexpress的产品,它的应用简单方便,好了,废话少说,进入正题,今天就是讲ORMAPPING在XPO框架中的应用。

     在讲应用之前,先解析一下ORMAPPING的概念有助于读者更好的理解代码,ORMAPING其实是object ralation mapping其实就是对象关系映射,说白了就是把类映射到表,或者说把表在程序里看成一个对象,更好的面向对象。ORMAAPING最重要的一些概念持久层,持久化工厂等等,各位自己去找资料,在此不详细说明。

    下面我做一个例子,实现表的新增修改查询。

     这里我建两个表,一个是主表,一个是从表,它们之间是一对多的关系。基于ORMAPPING的概念,我先建两个类,继承于XPOBJECT。

Code

 

Code

 

注意这两个类,我在构造函数里注入了Session,同时建立了他们的关系。这样他们之间的映射关系就建立好了。

现在我们对app.config添加数据库的配置信息,然后我们需要建一个类,用来创建SESSION

 

Code

 

这样我们的Session工厂就建立好了,需要用session的时候直接到这个工厂里取就行了,大家注意 AutoCreateOption option = AutoCreateOption.DatabaseAndSchema; 我这里选择的是DatabaseAndSchema,各位可以根据自己需要进行创建,接下来我们开始对表进行增删改查的操作。

 

Code

 

很简单吧,其实ORMAPPING关键是概念的掌握,本人写BLOG比较懒,呵呵,贴上代码,希望能起到抛砖引玉的作用~~~~~~~~~~~

 下载请点这里

posted @ 2009-02-27 15:37 刘湛滔 阅读(1544) 评论(10) 编辑

2009年2月11日

    最近一个朋友让我帮他做一个小功能,其实就是把WORD文档里的内容存到数据库里去,可以实现搜索并转EXCEL的功能,需求很简单,想不到加上部署折腾了我一个星期,我先把需求详细描述一下:

      提供一个WORD文档的样板,这个WORD文档里大部分是文本,其中插入了一个EXCEL表格,WORD的内容如下:

     

房地产价值监证确认书

 

                     编号:(2009交)价确字第   号

 邓征兵  

根据您的委托,我单位派遣专业评估人员对位于  大祥区翠园    的房地产(《房屋所有权证》)号为 0013210 ,房屋所有权人  邓文兵   房屋所在层次/总层数  6 / 8 ,进行了现场勘估。

评定估价对象房屋的结构等级为    砖混     ,建成年代为 90年代末  ,成新度为   9成   

确认房屋价值如下表:

这里有个EXCEL表格

监证目的:交易课税

 

备注:                                                   

                                                       

邵阳市房产产权监理处价格管理科

现场评估:黄生忠

审    批:

                                2009 年 2 月 10 日

就是把这个文件中相关内容存入数据库,同时要能够实现查询,比如根据委托人查询,同时要把查询的结果能转EXCEL。

功能就是这样的,先把其中用到的技术点挑出来,

一读WORD里的内容,这个并不难;

 

Code

 

二读WORD文件里EXCEL里的数据,这个是比较困难的,我试了很多方式,也没有查到相关的资料,最后在国外论坛上看见了VB的代码,然后修改了一下,可以用;

 

Code

 

三正则表达式的应用,我要获取比如邓征兵这个委托人,我不可能用SUBSTRING来取数据吧,这样效果太低了;

 

Code

四转EXCEL,网上很多人都是用datagrid直接转EXCEL,这样只能倒出第一页的数据,不适合我的程序;

 

Code

五,KILL进程,我在查看WORD里EXCEL里的数据的时候,无法关闭EXCEL,需要用程序来关闭;

 

Code

 

详细技术点请下载我的代码,点这里下载

posted @ 2009-02-11 14:54 刘湛滔 阅读(3160) 评论(26) 编辑