当前位置:  技术问答>java相关

关于数据库连接的问题,请教大家!

    来源: 互联网  发布时间:2015-06-01

    本文导语:  请问会每个客户端都产生个对象来连接数据库,那每个对象的数据库的连接状态都会是一样的吗?也就是产生的Connection会是一样的吗? | 一般情况下,在使用开发基于数据库的WEB程序时,传...

请问会每个客户端都产生个对象来连接数据库,那每个对象的数据库的连接状态都会是一样的吗?也就是产生的Connection会是一样的吗?

|
一般情况下,在使用开发基于数据库的WEB程序时,传统的模式基本是按以下步骤:
  1. 在主程序(如Servlet、Beans)中建立数据库连接。 
  2. 进行SQL操作,取出数据。
  3. 断开数据库连接。
  使用这种模式开发,存在很多问题。首先,我们要为每一次WEB请求(例如察看某一篇文章的内容)建立一次数据库连接,对于一次或几次操作来讲,或许你觉察不到系统的开销,但是,对于WEB程序来讲,即使在某一较短的时间段内,其操作请求数也远远不是一两次,而是数十上百次(想想全世界的网友都有可能在您的网页上查找资料),在这种情况下,系统开销是相当大的。事实上,在一个基于数据库的WEB系统中,建立数据库连接的操作将是系统中代价最大的操作之一。很多时候,可能您的网站速度瓶颈就在于此。
  其次,使用传统的模式,你必须去管理每一个连接,确保他们能被正确关闭,如果出现程序异常而导致某些连接未能关闭,将导致数据库系统中的内存泄露,最终我们将不得不重启数据库。
  针对以上问题,我们首先想到可以采用一个全局的Connection对象,创建后就不关闭,以后程序一直使用它,这样就不存在每次创建、关闭连接的问题了。但是,同一个连接使用次数过多,将会导致连接的不稳定,进而会导致WEB SERVER的频频重启。故而,这种方法也不可取。实际上,我们可以使用连接池技术来解决上述问题。首先,介绍一下连接池技术的基本原理。顾名思义,连接池最基本的思想就是预先建立一些连接放置于内存对象中以备使用。
    当程序中需要建立数据库连接时,只须从内存中取一个来用而不用新建。同样,使用完毕后,只需放回内存即可。而连接的建立、断开都有连接池自身来管理。同时,我们还可以通过设置连接池的参数来控制连接池中的连接数、每个连接的最大使用次数等等。通过使用连接池,将大大提高程序效率,同时,我们可以通过其自身的管理机制来监视数据库连接的数量、使用情况等。

|
你可以用同一个Connection,但极有可能造成对象的死锁。
所以最好分别定义新的连接,完全可以在处理数据库完毕后关闭就行
另外可以考虑用数据库连接池

|
所有的客户都使用一个连接时,当某个用户正在连接时,其他用户就只好等待了,只有等使用的连接的用户释放连接回连接池后,其他用户才能使用,所以不会造成冲突的

    
 
 

您可能感兴趣的文章:

  • 请教在linux系统开发环境下,有没有db和dbf数据库引擎,如何使用这个数据库?
  • 请教:如何将SQLSERVER数据库中所有表结构导出???
  • 请教:请问java中存放数据库中的记录,用什么数据结构?(hashtable?vector?还是别的?)
  • 请教数据库连接池的使用....
  • 请教各位大哥关于数据库编程。
  • 请教读取数据库内容的问题!!!
  • 请教:JSP中分页显示数据库内容的优化算法?
  • 请教,从数据库查看图片地,是否可以不下载到本地?
  • 请教:数据库查询的jsp的问题!
  • 请教高手: linux c如何远程访问windows下的oracle数据库?
  • 请教:关于[linux/unix环境下连接到Oracle数据库后断开连接]的问题
  • 请教,如果选出数据库中一条记录(比如一万条中的第3000条)
  • sql server数据库有没有专门的jdbc驱动程序,若有,请教怎样获得?
  • 请教:JSP能操作哪几种数据库呢?
  • 请教关于数据库问题
  • 请教RedHat7.3下 Oracle9i 数据库如何安装?
  • 再次请教如何在ultra dev里连接数据库!
  • 请教linux数据库mysql问题,谢谢!
  • 请教:怎么用JSP把图片上传到服务器SQL Server数据库?
  • 请教,嵌入式linux 下数据库选择问题。
  • php中内置的mysql数据库连接驱动mysqlnd简介及mysqlnd的配置安装方式
  • java数据库连接池和数据库连接示例
  • mysql jdbc连接mysql数据库步骤及常见参数详解
  • 通过JDBC连接数据库,执行抄作后,关闭了连接,数据服务器端的进程还在,怎麽处理?
  • 请问连接本机数据库的JDBC,和连接远程的JDBC有没有区别?
  • 在jbuilder中调用一bean连接数据库没有问题,在jsp中调用就连接不上数据库
  • 大家有多少web application是直接连接数据库的?又有多少是通过weblogic或websphere之类连接的?
  • 紧急求助,我的程序连接数据库时,用localhost完全正常,而外部可以访问,但不能访问连接数据的那部分
  • 在linux下可以使用dao方式连接数据库吗?可以连接musql吗?回答就给分!急
  • linux 下连接创建连接数据库程序,什么都可以 。谁知道300分
  • 一个方法中,用Connection con变量连接数据库,执行完sql以后,关闭con,返回resultset,报错“关闭的连接: next”
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 基于Key-Value的NOSQL数据库Redis的数据结构及常用相关命令介绍
  • 如何监控数据库的数据,如果数据库数据更改,就通知Server
  • 文档数据库mongodb与列式数据库hbase详细比较
  • 如何从数据库中或文本文件中提取数据到另一个数据库中?
  • SQL Server 2008如何进行数据库分离和附加详细介绍
  • 我从JSP页将数据插入到oracle数据库中,为何汉字插入后数据库中显示为乱码呢?
  • nosql数据库levedb介绍及levedb最新版1.18下载安装
  • 散分:Jbuilder6开发数据库应用请问你们都用什么数据库? 免费的数据库有那些?
  • Oracle 数据库(oracle Database)Select 多表关联查询方式
  • 数据在页面写不进数据库,也不可以从数据库中读出是什么原因?
  • ORACLE数据库常用字段数据类型介绍
  • mysql 本地数据库如何从远程数据库导数据
  • Oracle数据库(Oracle Database)体系结构及基本组成介绍
  • 请教RedHat7.3下 Oracle9i 数据库如何安装? iis7站长之家
  • 删除数据库中重复记录方法介绍及代码参考
  • 开发java下的数据库程序,用什么数据库引擎?
  • Mongodb数据库服务的开启与关闭详细介绍
  • 请问各位朋友:在JAVA的数据库应用管理系统中,如何不在操作系统忠建立数据源便能连接数据库(如ACCESS、MS SQL 等等
  • 如何实现 coreos 下Docker 与分布式数据库结合
  • sql 语句 取数据库服务器上所有数据库的名字
  • Oracle 数据库(oracle Database)性能调优技术详解
  • 请问谁有Applet连接远程Access数据库并且显示数据库内容的例子!
  • 应该怎么样将一个对象放入到数据库里?还有怎么将图片放进数据库?急~~
  • sql server 2005删除用户时“数据库主体在该数据库中拥有架构,无法删除”错误的解决办法
  • linux上安装oracle 数据库后,是否能写shell程序实现数据库的自动启动。
  • 使用php语句将数据库*.sql文件导入数据库
  • sql数据库修改数据库用户
  • 对数据库的查询结果resultset进行修改后,怎么将修改的信息传回给数据库
  • java中的数据库结果集可以被赋值吗,可以通过结果集的方法来更新数据库字段吗?
  • 手把手教你Oracle数据库导出数据库结构到PowerDesigner
  • 此数据库没有有效所有者,因此无法安装数据库关系图支持对象


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3