浅析B/S架构数据库连接方式
2016-07-27 20:03
176 查看
前言
在许许多多的B/S架构系统中都涉及到了数据库的链接,那么对于数据库连接的方式有哪些?可能出现的问题是什么?
目录
1.普通连接方式
2.单例模式
3.连接池
分析
普通连接:
下面是我们一般使用的普通连接方式的代码(jsp)
[Java] 纯文本查看 复制代码
?
普及:
[Java] 纯文本查看 复制代码
?
我们来分析一下写一段代码,其中Update方法是用来更新数据的,其中我们可以看到try中包含了getConn()方法用来获取Connection连接对象,到最后我们可以在finally代码块中看到Close()方法用来关闭创建的Connection对象以及PreparedStatement对象,这么消耗我们很大的内存空间。
如果用户同时点注册按钮那么服务器首先执行打开数据库连接Connection多个用户注册就会打开多个Connection那么并且同时添加到数据库,服务器就会在执行添加的时候就会发生异常。分不清楚用户注册的信息。举个例子:
左边的三个人同时对另一人喊不同的一个字,右边的一个人就会分不清,左边三个人喊了什么?(可以做真人实例)
总结:
从分析中,我们看到普通的连接方式中无法处理并发问题!如果你想知道解决方法那么请继续看下去。
单例连接:
下面一段单利模式中的数据库连接代码
[Java] 纯文本查看 复制代码
?
普及:
构造方法:访问修饰符(public|private)
类名
构造方法在实例化的时候就会调用
我们分析一下这一段代码中Connection在构造方法中创建用过getConn方法获取连接。
我们从图片中和代码中可以看到全程中只有一个Connection连接,那么这样就可以降低服务器的压力,解决并发问题
总结:
从分析中,我们看到单例模式,可以减轻服务器的压力,解决并发问题,如果够仔细的话大家会发现getConn方法是一个静态方法,而且其他属性和方法都是private从而大大提高了安全性。这种连接方式适合:个人开发和国家单位开发(安全性高)
连接池:
下面一段连接池数据库连接代码
[Java] 纯文本查看 复制代码
?
普及:
连接池:连接池是创建和管理一个连接的缓冲池的技术,这些连接准备好被任何需要他们的线程使用。
我们可以直接使用getConn方法获得Connection并且执行数据操作,执行完成之后连接池会回收Connection这样就解决了普通模式中的并发问题.
总结:
从分析中,我们看到Connection不需要创建,这样就简化编程模式,这样减少了连接的创建时间,连接池能够使性能最大化,同事还能将资源利用控制在一定的水平之下,如果超过该水平,应用程序将崩溃而不仅仅是变慢。
原文链接:http://bbs.ichunqiu.com/thread-8784-1-1.html?from=jiuge
在许许多多的B/S架构系统中都涉及到了数据库的链接,那么对于数据库连接的方式有哪些?可能出现的问题是什么?
目录
1.普通连接方式
2.单例模式
3.连接池
分析
普通连接:
下面是我们一般使用的普通连接方式的代码(jsp)
[Java] 纯文本查看 复制代码
?
[Java] 纯文本查看 复制代码
?
如果用户同时点注册按钮那么服务器首先执行打开数据库连接Connection多个用户注册就会打开多个Connection那么并且同时添加到数据库,服务器就会在执行添加的时候就会发生异常。分不清楚用户注册的信息。举个例子:
左边的三个人同时对另一人喊不同的一个字,右边的一个人就会分不清,左边三个人喊了什么?(可以做真人实例)
总结:
从分析中,我们看到普通的连接方式中无法处理并发问题!如果你想知道解决方法那么请继续看下去。
单例连接:
下面一段单利模式中的数据库连接代码
[Java] 纯文本查看 复制代码
?
构造方法:访问修饰符(public|private)
类名
构造方法在实例化的时候就会调用
我们分析一下这一段代码中Connection在构造方法中创建用过getConn方法获取连接。
我们从图片中和代码中可以看到全程中只有一个Connection连接,那么这样就可以降低服务器的压力,解决并发问题
总结:
从分析中,我们看到单例模式,可以减轻服务器的压力,解决并发问题,如果够仔细的话大家会发现getConn方法是一个静态方法,而且其他属性和方法都是private从而大大提高了安全性。这种连接方式适合:个人开发和国家单位开发(安全性高)
连接池:
下面一段连接池数据库连接代码
[Java] 纯文本查看 复制代码
?
连接池:连接池是创建和管理一个连接的缓冲池的技术,这些连接准备好被任何需要他们的线程使用。
我们可以直接使用getConn方法获得Connection并且执行数据操作,执行完成之后连接池会回收Connection这样就解决了普通模式中的并发问题.
总结:
从分析中,我们看到Connection不需要创建,这样就简化编程模式,这样减少了连接的创建时间,连接池能够使性能最大化,同事还能将资源利用控制在一定的水平之下,如果超过该水平,应用程序将崩溃而不仅仅是变慢。
原文链接:http://bbs.ichunqiu.com/thread-8784-1-1.html?from=jiuge
相关文章推荐
- 【Postgresql源码分析之三】同步复制源码分析
- 浅谈.NET应用程序SQL注入
- 表空间文件大小达到32G
- windows+xampp环境下升级mysql
- ORA-00031:标记要终止的会话 解决方法
- oracle审计详解
- SQL同时查询多条语句
- Discuz!X/数据库操作方法
- mysql 查询数组包含的id
- Redis 配置redis.conf 解读
- kittle连接数据库(连接SQL server、MySQL)
- SQL语句优化
- mysql读写分离
- 查看当前支持的MySQL字符集的命令
- mysql读写分离
- mysql读写分离
- Mysql笔记
- htable基本概念(分布式数据库)
- Mysql学习总结(29)——MySQL中CHAR和VARCHAR
- Mysql学习总结(28)——MySQL建表规范与常见问题