`

简单就是生活地全部,让你简单地ORM-DbScript

阅读更多
  前几天发布了我写的一个ORM组件,其实我也不知道能不能把它叫做ORM,因为我只是按照自己的一个很简单的想法-方便快捷,不要有什么噱头,强迫你要为了OO而写一大堆代码和配置文件来实现一个表关联,也不用写一大堆XML配置后还要写一大堆的实体类,虽然有代码生成工具,但是就是会让人觉得很不爽,一大堆的配置让新手上手有了很高的门槛。我喜欢iBaties的以程序员为中心的思想,学了SQL却不用那是很痛苦的事情,就跟男人被阉割,程序员很多都会习惯性的把某些功能直接在大脑中就和SQL语句关联起来,为什么要抹杀程序员的天性呢?还有很多对性能比较吹毛求疵的人为什么就不能满足他们的与生俱来的欲望呢?但是iBaties的配置文件荏苒是我心中的痛,而且也不喜欢在工具间切换来切换去,会打断思维的。后来发现了SubSonic,号称0代码ORM,用过之后发现,不用配置的确是方便了,但是如果开发的时候连接不上数据库,就基本上不要做了,而且和NHibernate一样的把SQL阉割了。
  所以,我开始写DbScript。
  DbScript很简单,没有一大堆的噱头,结构简单,用起来也简单。
  它可以自动帮你生成所有的实体类,所以你不用写实体类了,会自动帮你把每一条Sql查询转化成方法,一切都是强类型的,所以不用担心因为变异时找不到错误。配置文件是可以用任何SQL工具从数据库导出的Create语句和很简单结构的Sql指令列表(比XML简单多了)。我们来看看到底能有多简单。
  首先在数据库里创建好表结构(假设是SqlServer2000),然后在企业管理器中导出创建表的SQL,另存为script.sql保存在App_Code 目录里,然后用 表名:查询名{SQL查询}这样子的结构将可能用到的查询都写进去。
  然后在网站项目引用Dbscript.Dll,按照规定添加Web.config,其它配置直接Copy进去,只需要修改连接字符串和数据库类型。之后把网站编译一次,然后我们就可以开始简简单单的工作了。
  每个表都会被生成实体类,查询的方法也都自动生成了,如果要查询你只需要写入Fetch,VS2005会自动的提醒你有哪些查询方法是可选的。我们看一个例子,查询在成都的用户:
   
1IExecute exec = ExecuteFactory.GetExecuter();
2donkeyuser du = new donkeyuser();
3du.livingcity = "成都";
4int count = 0;
5List<donkeyuser> list = Fetch.getalluser(du, 101out count, exec);
6GridView1.DataSource = list;
7GridView1.DataBind();

如果排除绑定GridView,大家可以看到有多简单了。
如果是插入一个用户呢?
1IExecute exec = ExecuteFactory.GetExecuter();
2donkeyuser du = new donkeyuser();
3exec.Insert<donkeyuser>(du);
4

如果是需要事务来操作呢?
 1IExecute exec = ExecuteFactory.GetExecuter();
 2donkeyuser du = new donkeyuser();
 3try
 4{
 5    exec.OpenTrans();
 6    exec.Insert<donkeyuser>(du);
 7    exec.Commit();
 8}

 9catch
10{
11    exec.RollBack();
12}

13

  注意,用完后记得要exec.Close()关闭连接;
  很多人会问,如果有Many2One,One2Many,Many2Many的关系怎么办呢?
其实也就一句话的事情,也许我在下一个版本会提供一个简化的版本来解决关系问题以适应更懒得人,不过自己权衡了一下,配置半天来搞定本来一句话就搞定的事情实在划不来,于是这个版本我就懒筋发作没有处理了。
  不想强调这个组件怎么怎么符合先进的架构,三层多层什么的,老实说我把它设计得更类似一个ToolKit,而非Framework,Framework是束缚程序员手脚的框框条款,而ToolKit是程序员的好朋友,需要的时候你可以用它,不需要的时候它会静静的呆在代码的角落,所以我希望你能下载Dbscript,让它来帮助你,也希望你能给我更多的建议,回馈,让我能更好的改进它。

项目主页:http://www.codeplex.com/Dbscript 

         
分享到:
评论

相关推荐

    YOLO算法-城市电杆数据集-496张图像带标签-电杆.zip

    YOLO系列算法目标检测数据集,包含标签,可以直接训练模型和验证测试,数据集已经划分好,包含数据集配置文件data.yaml,适用yolov5,yolov8,yolov9,yolov7,yolov10,yolo11算法; 包含两种标签格:yolo格式(txt文件)和voc格式(xml文件),分别保存在两个文件夹中,文件名末尾是部分类别名称; yolo格式:<class> <x_center> <y_center> <width> <height>, 其中: <class> 是目标的类别索引(从0开始)。 <x_center> 和 <y_center> 是目标框中心点的x和y坐标,这些坐标是相对于图像宽度和高度的比例值,范围在0到1之间。 <width> 和 <height> 是目标框的宽度和高度,也是相对于图像宽度和高度的比例值; 【注】可以下拉页面,在资源详情处查看标签具体内容;

    (177406840)JAVA图书管理系统毕业设计(源代码+论文).rar

    JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代

    (35734838)信号与系统实验一实验报告

    内容来源于网络分享,如有侵权请联系我删除。另外如果没有积分的同学需要下载,请私信我。

    YOLO算法-椅子检测故障数据集-300张图像带标签.zip

    YOLO系列算法目标检测数据集,包含标签,可以直接训练模型和验证测试,数据集已经划分好,包含数据集配置文件data.yaml,适用yolov5,yolov8,yolov9,yolov7,yolov10,yolo11算法; 包含两种标签格:yolo格式(txt文件)和voc格式(xml文件),分别保存在两个文件夹中,文件名末尾是部分类别名称; yolo格式:<class> <x_center> <y_center> <width> <height>, 其中: <class> 是目标的类别索引(从0开始)。 <x_center> 和 <y_center> 是目标框中心点的x和y坐标,这些坐标是相对于图像宽度和高度的比例值,范围在0到1之间。 <width> 和 <height> 是目标框的宽度和高度,也是相对于图像宽度和高度的比例值; 【注】可以下拉页面,在资源详情处查看标签具体内容;

    基于小程序的新冠抗原自测平台小程序源代码(java+小程序+mysql+LW).zip

    系统可以提供信息显示和相应服务,其管理新冠抗原自测平台小程序信息,查看新冠抗原自测平台小程序信息,管理新冠抗原自测平台小程序。 项目包含完整前后端源码和数据库文件 环境说明: 开发语言:Java JDK版本:JDK1.8 数据库:mysql 5.7 数据库工具:Navicat11 开发软件:eclipse/idea Maven包:Maven3.3 部署容器:tomcat7 小程序开发工具:hbuildx/微信开发者工具

    YOLO算法-俯视视角草原绵羊检测数据集-4133张图像带标签-羊.zip

    YOLO系列算法目标检测数据集,包含标签,可以直接训练模型和验证测试,数据集已经划分好,包含数据集配置文件data.yaml,适用yolov5,yolov8,yolov9,yolov7,yolov10,yolo11算法; 包含两种标签格:yolo格式(txt文件)和voc格式(xml文件),分别保存在两个文件夹中,文件名末尾是部分类别名称; yolo格式:<class> <x_center> <y_center> <width> <height>, 其中: <class> 是目标的类别索引(从0开始)。 <x_center> 和 <y_center> 是目标框中心点的x和y坐标,这些坐标是相对于图像宽度和高度的比例值,范围在0到1之间。 <width> 和 <height> 是目标框的宽度和高度,也是相对于图像宽度和高度的比例值; 【注】可以下拉页面,在资源详情处查看标签具体内容;

    (171674830)PYQT5+openCV项目实战:微循环仪图片、视频记录和人工对比软件源码

    内容来源于网络分享,如有侵权请联系我删除。另外如果没有积分的同学需要下载,请私信我。

    新建 文本文档.docx

    新建 文本文档.docx

    hw06.zip

    hw06

    3. Kafka入门-安装与基本命令

    3. Kafka入门-安装与基本命令

    燃气管道施工资质和特种设备安装改造维修委托函.docx

    燃气管道施工资质和特种设备安装改造维修委托函.docx

    The state of AI 2024.pdf

    AI大模型研究相关报告

    lab02.zip

    lab02

    Unity视频插件AVPro的Win端2.2.3

    仅供学习使用,其他用途请购买正版资源AVPro Video Core Windows Edition 2.2.3 亲测可用的视频播放插件,能丝滑播放透明视频等.

    建设工程消防验收现场指导意见表.docx

    建设工程消防验收现场指导意见表.docx

    MVIMG_20241222_194113.jpg

    MVIMG_20241222_194113.jpg

    五相电机双闭环矢量控制模型-采用邻近四矢量SVPWM-MATLAB-Simulink仿真模型包括: (1)原理说明文档(重要):包括扇区判断、矢量作用时间计算、矢量作用顺序及切时间计算、PWM波的生成

    五相电机双闭环矢量控制模型_采用邻近四矢量SVPWM_MATLAB_Simulink仿真模型包括: (1)原理说明文档(重要):包括扇区判断、矢量作用时间计算、矢量作用顺序及切时间计算、PWM波的生成; (2)输出部分仿真波形及仿真说明文档; (3)完整版仿真模型:包括邻近四矢量SVPWM模型和完整双闭环矢量控制Simulink模型; 资料介绍过程十分详细,零基础手把手教学,资料已经写的很清楚

    YOLO算法-锡罐-牙罐-盖子打开数据集-179张图像带标签-锡罐-牙罐-盖子打开.zip

    YOLO系列算法目标检测数据集,包含标签,可以直接训练模型和验证测试,数据集已经划分好,包含数据集配置文件data.yaml,适用yolov5,yolov8,yolov9,yolov7,yolov10,yolo11算法; 包含两种标签格:yolo格式(txt文件)和voc格式(xml文件),分别保存在两个文件夹中,文件名末尾是部分类别名称; yolo格式:<class> <x_center> <y_center> <width> <height>, 其中: <class> 是目标的类别索引(从0开始)。 <x_center> 和 <y_center> 是目标框中心点的x和y坐标,这些坐标是相对于图像宽度和高度的比例值,范围在0到1之间。 <width> 和 <height> 是目标框的宽度和高度,也是相对于图像宽度和高度的比例值; 【注】可以下拉页面,在资源详情处查看标签具体内容;

    java毕设项目之ssm基于JSP的乡镇自来水收费系统+jsp(完整前后端+说明文档+mysql+lw).zip

    项目包含完整前后端源码和数据库文件 环境说明: 开发语言:Java 框架:ssm,mybatis JDK版本:JDK1.8 数据库:mysql 5.7 数据库工具:Navicat11 开发软件:eclipse/idea Maven包:Maven3.3 服务器:tomcat7

Global site tag (gtag.js) - Google Analytics