`

关于Web应用程序数据库连接的使用

阅读更多
之前的Post掀起掀然大波,砸砖者纷至沓来好不热闹。之前的Post观点不够明确,准确,先say sorry,重新整理思路后再分别说明

观点:对于一个WebApplication,提高整体吞吐能力,应该从提高单页的响应能力开始,对于WebApplication使用上的一个原子操作:打开一个页面而言,在整个页面的生存周期中打开的数据连接数量越少,开闭的次数越少效率自然越高。

约束:页面默认是同步的操作,我们在这里约定再不采用异步操作的时候,如果用异步操作优化,那么又是另外的问题了,会有其他的问题产生,比如当两次操作有前因后果的关系的时候。

首先就是关于数据库联接的问题,我这里用数据库联接而不用Connection就是为了滴水不漏,省得错把关公当秦琼把数据库连接和.NET的XXConnection对象混淆起来。
这里用代码来说明,为了保证观点的中性,我将使用NHibernate的实现来做例子。
这里暂时委屈一下NHibernate暂时这样子来用。
我们这里面临两个问题数据库连接的访在那里对象放在那里,其二就是如何使用,如果按照一些人的观点就是随需开,在需要的时候打开。比如

ISession vSession= mCfg.BuildSessionFactory().OpenSession();//创建会话工厂, 一般来说应该使用一个单例对象来封装会话工厂.

              ITransaction vTransaction 
= vSession.BeginTransaction();//创建事物处理

              
try

              
{

                   vSession.Save(vEntity);
//向数据库添加数据

                   vTransaction.Commit();

                   Labmessage.Text
="OK";

              }


              
catch(Exception ex)

              
{

                   vTransaction.Rollback();

                   Labmessage.Text
="Error"+ex.ToString();

              }


              
finally

              
{

                   vSession.Close();

              }



这段代码来自http://www.cnblogs.com/surprise/archive/2004/10/13/51701.aspx 

一般我们会将这段代码放进一个处理业务逻辑的对象。里面,当需要添加一个Entity的时候调用,当然Entity有更多的用法,不过我们在这里就对这样子的简单的来做第一个例子。

那么如果我们针对这一个简单实体封装了一个逻辑:添加XX(用户信息、Post)等,当我们需要在一个页面操作多个的时候,就会有一个问题,一个是事务,这里我们暂且跳开不管,然后的情况就是在这个页面频繁的关闭打开了多次数据库。

这个时候我所提出的一个页面一个Connection的方式就是指的,将:
ISession vSession= mCfg.BuildSessionFactory().OpenSession();//创建会话工厂, 一般来说应该使用一个单例对象来封装会话工厂.

              ITransaction vTransaction 
= vSession.BeginTransaction();//创建事物处理

              
try

              
{

                业务逻辑对象.操作(vSession)
                   vTransaction.Commit();

                   Labmessage.Text
="OK";

              }


              
catch(Exception ex)

              
{

                   vTransaction.Rollback();

                   Labmessage.Text
="Error"+ex.ToString();

              }


              
finally

              
{

                   vSession.Close();

              }



这样子的代码写在页面上。

so,就是这个样子了,在业务逻辑里将操作做完了,以后不需要做数据库操作的时候就将数据库连接关闭,事务提交。
我不知道很多人是怎么理解的。

就写到这里,等大虾来拍砖,还有就是这样子的代码如果存在线程问题的话。那么是不是应该对page_load方法这样子的方法都要处理线程安全问题了?效率的问题不知道是频繁关闭打开数据库来的有效率?一个建议,如果不在乎这点开销的话也无所谓,如果为了结构上的清晰而让步,这点我不反对,但是这个指标绝对是在优化效率的时候应该考虑到的
很多人在上一片post里说这样子做要我会死得很难看,我就不明白了,还有其他不死的很难看的方法?

之前Post的连接http://www.cnblogs.com/Alexander-Lee/archive/2007/03/31/694847.html
分享到:
评论

相关推荐

    asp.net配置web.config数据库连接

    以上就是关于ASP.NET配置Web.config数据库连接的基本知识,通过合理的配置和使用,我们可以确保应用安全、高效地与数据库进行通信。在实际项目开发中,务必根据具体需求和环境调整配置,遵循最佳实践。

    ASP.NET WebAPI连接数据库的方法

    *** WebAPI是一种在.NET Framework上构建HTTP服务的强大框架,专为创建RESTful应用程序而设计。这种框架让开发者可以轻松构建可以被多种客户端访问的服务,包括浏览器、移动设备等。在WebAPI的运用中,最常见的需求...

    web中常用数据库连接池

    数据库连接池的基本工作原理是:当应用程序需要访问数据库时,首先从连接池中获取一个已经建立好的连接,使用完毕后,不是立即关闭连接,而是将其归还给连接池,以便其他请求再次使用。这样避免了频繁地打开和关闭...

    Web应用中,各种数据库连接方法总结

    在Web应用程序开发过程中,数据库的连接与操作是不可或缺的一部分。不同的数据库系统有着不同的连接方式。本文将总结在Web应用中常用的几种数据库(Oracle、DB2、SQL Server、MySQL等)通过ODBC和JDBC进行连接的方法...

    利用Eclipse创建数据库web应用程序.rar

    在IT行业中,开发数据库驱动的Web应用程序是一项常见的任务,而Eclipse作为一个强大的集成开发环境(IDE),提供了便捷的工具来支持这一过程。本教程将详细讲解如何利用Eclipse创建一个数据库Web应用程序,帮助...

    Web与数据库连接工具形成与设计分析

    通过Web与数据库连接工具的应用,能够将数据库中的数据非常容易的发布到Web浏览器上,这样用户就不再依靠数据库应用程序来对数据库内容进行各种操作了,主要包括增加、修改、查询和删除等等,使用户能够使用Web浏览器...

    C#web 连接数据库

    标题 "C# Web 连接数据库" 涉及到的是使用C#编程语言在Web应用程序中与数据库进行交互的技术。C#是.NET框架的主要开发语言,它提供了丰富的类库来支持Web应用开发,其中包括对数据库操作的支持。在这个项目中,...

    java web测试数据库连接是否正常

    在Java Web开发中,数据库连接是至关重要的环节,它确保了应用程序能够与数据存储进行有效交互。...正确配置数据库连接参数,使用JDBC API进行连接和查询,是确保应用程序与数据库间通信畅通无阻的基础。

    web项目数据库连接样例

    在开发Web应用程序时,数据库连接是至关重要的环节,它使得应用程序能够存储、检索和更新数据。本示例将深入探讨如何在Web项目中建立数据库连接,以实现高效的数据交互。 一、数据库连接基础 数据库连接是指Web...

    基于JAVA JSP数据库连接池的研究与实现的毕业设计,使用数据库连接池方式能对数据库的连接进行管理和维护,上层应用程序通过数据

    使用数据库连接池方式能对数据库的连接进行管理和维护,上层应用程序通过数据库连接池使用数据库资源能提升系统性能,充分利用系统资源。文章通过介绍、分析数据库连接池工作的基本原理,了解目前流行的WEB服务器在...

    java web 开发 数据库的连接

    在Java Web开发中,数据库连接是至关重要的环节,它使得应用程序能够与数据库进行交互,执行查询、更新等操作。本文将深入探讨如何在Java中实现SQL数据库的连接,特别是使用桥连接方式、JavaBeans以及会话(Session...

    WEB数据库中几种数据库连接方法比较

    连接池预先创建并维护一组数据库连接,应用程序需要时从池中获取空闲连接,使用完毕后将其归还池中而不是关闭。 - **优点:** - 减少了连接建立和释放的开销。 - 提高了响应速度。 - 有助于避免并发连接过多导致...

    利用Eclipse创建数据库web应用程序[汇编].pdf

    在 Eclipse 中,开发者可以使用 WTP 提供的工具来配置数据库连接,并确保数据库正确地连接到应用程序。 总结 使用 Eclipse 创建数据库 Web 应用程序是一个简单的过程。开发者可以使用 WTP 和 Derby 数据库引擎创建...

    基于Java mvc的web应用程序项目数据库连接到登录和登录操作

    在这个项目中,"基于Java MVC的web应用程序项目数据库连接到登录和登录操作",我们将深入探讨如何整合JSP、Java、Servlet、DAO(数据访问对象)以及MySQL数据库来实现用户登录的功能。 1. **MVC架构**: MVC...

    Java jdbc数据库连接池总结

    但是,使用这种模式进行 Web 应用程序开发,存在很多问题:首先,每一次 Web 请求都要建立一次数据库连接。建立连接是一个费时的活动,每次都得花费 0.05s~1s 的时间,而且系统还要分配内存资源。这个时间对于一次...

    Java数据库连接池的原理与应用.pdf

    综上所述,数据库连接池是Java Web应用程序中重要的技术组件,它的运用有助于提高数据库操作的效率,并且能够优化整个应用程序的性能表现。掌握连接池的原理与应用,对于Java开发者来说是必不可少的一项技能。

    数据库连接池在web开发中的应用

    本文将深入探讨Tomcat自带的DBCP(Database Connection Pool)库的使用,以及它如何与Web应用程序集成。 DBCP是Apache Commons的一个组件,主要负责管理数据库连接,避免每次请求数据库时创建新的连接,从而降低...

    Web版数据库连接系统

    Web版数据库连接系统是一种基于网络的数据库管理系统,它允许用户通过Web界面远程访问和管理数据库。这个系统的核心功能包括创建、查询、更新和删除数据库,为用户提供了一个灵活且易用的平台来处理数据。在技术实现...

    .NET平台下WEB应用程序的部署(安装数据库和自动配置)

    在打包Web应用程序时,可以选择使用Web Deploy(Web Deploy Package)方式,它可以最小化部署文件大小,并自动处理IIS(Internet Information Services)站点配置、文件权限等问题。Web Deploy还可以实现增量更新,...

Global site tag (gtag.js) - Google Analytics