iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Nhibernate与代码生成的示例分析
  • 329
分享到

Nhibernate与代码生成的示例分析

2023-06-17 21:06:47 329人浏览 独家记忆
摘要

这篇文章主要为大家展示了“Nhibernate与代码生成的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Nhibernate与代码生成的示例分析”这篇文章吧。在向大家详细介绍Nhiber

这篇文章主要为大家展示了“Nhibernate与代码生成的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Nhibernate与代码生成的示例分析”这篇文章吧。

在向大家详细介绍Nhibernate之前,首先让大家了解下ORM和代码生成,然后全面介绍Nhibernate。

原来一直使用代码生成,包括CodeSmith和CodeMatic.最近打算系统学习一下Nhibernate,经过简单的一点探索,发现ORM和代码生成真是个有千秋。

本文侧重比较一下ORM和代码生成二者的优缺点,让二者华山一比高下,目的为去伪存真,使二者能够相辅相成。从而更好的提高开发效率。

本文从下面三个层面对ORM(以NHibernate为首发的O阵营) 和代码生成(以CodeMatic为首发的C阵营)进行比较:

针对数据库二者的架构层次上的异同。

针对应用程序二者在使用和配置上的异同。

针对业务逻辑二者在对变化和复杂度上支持度的异同。

下面就具体针对这三个层面做一下具体分析,这些分析都来源于自己开发中的一些经验和心得,有些是正确的,有些也存在这样那样的问题。写出来,希望的也只是能抛砖引玉,得到更多朋友,兄弟的帮助和支持。

1.针对数据库二者在架构层次上异同

ORM针对数据库是由上而下的关系,也就是说ORM并不依赖于数据库。他可以完全从关系数据库中将程序员解放出来,需要程序员小心呵护的是传递给nhibernate的persistent object.这看起来更加OO,而代码生成恰恰相反,代码生成依赖于关系数据库。它总结数据库操作的一些共性,将本来需要程序员手写的代码自动生成出来。从OO的角度来说,代码生成的过程并不体现OO思想,但根据模版或者软件作者的一些逻辑。生成出来的代码却可能具有很好的OO思想。针对数据库来说,ORM是自顶向下的,代码生成则是自下而上。二者方向恰好相反。

2.针对应用程序二者在使用和配置上的异同

nhinernate的使用需要在原有系统上添加对nhibernate.dll和其他一些相关的dll的引用,而代码生成则不然,代码生成是在另外的一个软件中,通过指定数据库来生成用于操作数据库的文件,将这些文件添加到项目中的时候才可以正常使用。nhibernate最让人头疼的就是配置和映射文件的编写。而代码生成,如果需要完成复杂的逻辑和自定义的业务,需要编写CodeSmith等软件的模版,这些模版的编写也不是一件简单的事情。从使用和配置上看,二者的异同在于使用方法,引用方法,配置文件nhibernate系统内需要添加相关引用,需要编写大量的配置和映射文件。codematic系统外不需要添加引用,业务简单时不需要配置,复杂时需要编写自定义模版 bbs.j2mehome.com

3.针对业务逻辑二者在对变化和复杂度上支持度的异同

假如原有一个User表,这个表已经运行了一段时间。但目前需要在User表里面添加一个可为null的字段:BirthDay,二者对此需求的响应各自是应该是怎么样的呢?

数据库改动 配置改动 代码更改nhibernate 无需 需要映射文件中添加对BirthDay的映射 更改User类,添加属性BirthDaycodematic 需要在User表里面添加一个BirthDay字段 不需要更改 ***使用状态下需要从数据层到业务逻辑层重新生成代码,如果以前有改动,则需要手动添加BirthDay向伽相关代码针对于单表操作,二者都比较简单,但是当业务变得复杂的时候,二者在表现力如何呢?比如现在有这样一种应用环境,计算和维护职员和工资:
1.列出所有职员。
2.列出某个职员的某月的工资信息。
3.统计某个员工在第2个季度的总工资。
4.计算上半年公司支付给员工的总工资。其中包括已离职人员的工资。

在这样一种应用环境下,分别讨论二者如何应付数据表 业务对象 配置文件业务对象的使用nhibernate 无需创建 手动编写User,Salary业务对象。 需要编写配置文件,标示业务对象的主从关系在二者差生围度和关联时,内置支持codematic 需要创建User和Salary表,并指定主从 不需 不需产生关联和围度时,需要手工更改数据底层和上层业务代码。

总结,ORM和代码生成二者各有各自的好处,但综合考虑ORM更符合OO的口味,而代码生成则比较灵活,可以应用到除了数据库操作的其他方面。比如生成nhibernate需要的映射文件等。加上原有的URM和数据建模,几者共用,开发效率一定会有较大的提高。

以上是“Nhibernate与代码生成的示例分析”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网精选频道!

--结束END--

本文标题: Nhibernate与代码生成的示例分析

本文链接: https://www.lsjlt.com/news/293264.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Nhibernate与代码生成的示例分析
    这篇文章主要为大家展示了“Nhibernate与代码生成的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Nhibernate与代码生成的示例分析”这篇文章吧。在向大家详细介绍Nhiber...
    99+
    2023-06-17
  • Mybatis-Plus代码生成器的示例分析
    小编给大家分享一下Mybatis-Plus代码生成器的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧! 实战 数据库脚本 创建一张商品表test_goodsCREATE&nbs...
    99+
    2024-04-02
  • ES6中迭代器与生成器的示例分析
    这篇文章将为大家详细讲解有关ES6中迭代器与生成器的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。具体如下:循环语句的问题var colors ...
    99+
    2024-04-02
  • springboot整合freemarker代码自动生成器的示例分析
    这篇文章给大家分享的是有关springboot整合freemarker代码自动生成器的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。技术架构页面是用 Vue ,element-ui开发;网络请求是 Axi...
    99+
    2023-06-15
  • thinkphp5+barcode生成条形码的示例分析
    小编给大家分享一下thinkphp5+barcode生成条形码的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!thinkphp5 + barcode 生成...
    99+
    2023-06-06
  • PHP随机数生成代码与使用实例分析
    我们还可以使用随机数设计任何我们想象的程序结构。 首先来认识一下PHP提供的随机数函数rand()。PHP的rand()函数将返回随机整数,具体使用方法如下 rand(min,max...
    99+
    2022-11-21
    PHP 随机数
  • Java deadlock生成的示例分析
    Java deadlock生成的示例分析,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Java deadlock生成需要我们注意的关键点有很多,其实有不少的问题...
    99+
    2023-06-17
  • js生成二维码的示例代码
    前段时间项目中需要开发扫描二维码查看信息的功能,在网上查了一些资料,把用过的方法进行总结需要导入一个qrcode的js 插件。 插件链接: qrcode.js下载地址,点击即可下载 ...
    99+
    2024-04-02
  • mybatis plus自动生成代码的示例代码
    写一个简单的mybatis plus插件自动生成代码的例子 pom.xml 添加配置 <!-- mybatis plus 插件--> <dependency>...
    99+
    2024-04-02
  • PHP生成饼图的示例代码
    首先要把php_iconv.dll和inconv.dll COPY到c:\winnt\system32下,直接上代码: < define("ANGLE_STEP", 5); /...
    99+
    2022-12-21
    PHP生成饼图 PHP 饼图
  • 二维码图片生成器QRCode.js的示例分析
    这篇文章给大家分享的是有关二维码图片生成器QRCode.js的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。QRCode.js是一个实现生成二维码(QRCode)的js插...
    99+
    2024-04-02
  • vue3生成随机密码的示例代码
    目录实现效果实现思路完成布局完成生成随机数的方法完成生成随机密码的方法部分代码总结实现效果 实现思路 完成布局完成生成随机数的方法完成生成随机密码的方法 完成布局 布局直接用ele...
    99+
    2024-04-02
  • Python中切片迭代列表生成式及生成器的示例分析
    小编给大家分享一下Python中切片迭代列表生成式及生成器的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!在Python中,代码越少越好、越简单越好。基于这一思想,需要掌握Python中非常有用的高级特性,1行代码...
    99+
    2023-06-25
  • c#代码生成URL地址的示例
    目录“头疼”“吃药”工具代码使用代码“头疼” 自己在用Angular做项目时,前端要请求后端数据时的代码如下 this.http.get("url/xxx") 这是请求一个U...
    99+
    2024-04-02
  • MyBatisPlus代码生成器的使用示例
    目录导入依赖表结构当前项目结构配置代码生成器1、globalConfig 全局策略配置2、dataSourceConfig 数据源配置AutoGenerator 是 MyBatis-...
    99+
    2024-04-02
  • Python代码示例分析
    这篇文章主要介绍了Python代码示例分析的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Python代码示例分析文章都会有所收获,下面我们一起来看看吧。题目加粗,注意事项红色(...
    99+
    2024-04-02
  • linux随机密码生成工具mkpasswd的示例分析
    这篇文章主要为大家展示了“linux随机密码生成工具mkpasswd的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“linux随机密码生成工具mkpasswd的示例分析”这篇文章吧。li...
    99+
    2023-06-09
  • webpack代码拆分的示例分析
    这篇文章主要介绍webpack代码拆分的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!如果利用 webpack 将项目中的所有代码打包在一起,很多时候是不适用的,因为代码中有...
    99+
    2024-04-02
  • PHP实现生成二维码的示例代码
    目录前言1、目前有2种类型的二维码2、用户扫描带场景值二维码时,可能推送以下两种事件3、创建二维码ticket4、临时二维码请求说明5、永久二维码请求说明6、临时二维码和永久二维码生...
    99+
    2024-04-02
  • Css中代码的示例分析
    小编给大家分享一下Css中代码的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!text-rendering: optim...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作