|
文件: |
SqlBuilderV0.0.0.1.rar |
大小: |
684KB |
下载: |
下载 | |
开发工具:Visual Studio 2008
开发语言:C#
开发平台:.net framework 3.5
编了这么长时间的程序,在刚开始我们都编写对数据库增删改,写的头大了。早在两天前想,为什么我不编写一个Sql生成器。其实我也知道现在的ORM产品很多,在java上的Hibernate,微软的Linq,不过他们都特别的复杂,都要去配置。我编写的是一个轻量级的ORM,只要调用类库,设置字段的名称,类型,值,表名称。等基本参数,即可对数据库进行添加,修改,删除操作。其实原理也很简单,也就是对Sql的Insert,Update,Delete进行分析。然后去组装SQL语句,其实也就是雕虫小技。
其实,这个程序,我写了这个版本。是我感觉还算比较满意的一个版本。不过还没有封装好。虽然写了好几年的程序,现在发现我对面向对象的理解也太肤浅了。刚开始我大量用了继承,真叫一个痛苦,代码基本不能重用。然后又看了看设计模式的书籍,仔细的去阅读对象之间的关系,在设计模式中有一个叫做组合替换继承。经过多次的修改代码,重构。代码算是比以前好了。经过这个过程,我发现。重构在平时。只有你多编码程序,或许,在开始你的程序写的很烂。也要坚持。当有一天你发现你写的代码很烂的时候。就说明你的量变引起了质变了。不然你不会看出你写的代码很烂。就像一本书上写的编程的精髓就是:编程,编程,再编程。
对了该如何使用这段代码呢,使用测试中的代码即可说明问题,代码如下:
///
///A test for InsertAction
///
[TestMethod()] public void InsertActionTest() { DbAction target = new SqlServerAction(); // TODO: Initialize to an appropriate value
string tableName = "uums_role_info"; // TODO: Initialize to an appropriate value
IList<ParameterColumn> columns = new List<ParameterColumn>() ; // TODO: Initialize to an appropriate value
columns.Add(new ParameterColumn(new Column("role_code", ColumnTypeEnum.VarChar, "test"), true)); columns.Add(new ParameterColumn(new Column("memo", ColumnTypeEnum.VarChar, "test"), false)); int expected = 1; // TODO: Initialize to an appropriate value
int actual; actual = target.InsertAction(tableName, columns); Assert.AreEqual(expected, actual); }
|
从上面的测试代码中,我们可以看到,我们进行Insert操作的表名为“uums_role_info”,然后对"role_code","memo"进行了赋值。然后调用InsertAction方法。架构图如下:
阅读(4201) | 评论(0) | 转发(0) |