数据库连接池:基本原理---在内部对象池中维护一定数量的数据库连接,并对外暴露数据库连接和返回方法,外部使用者可以通过getConnection()方法获取连接,使用完毕后再通过releaseConnection()方法将连接返回,注意此时连接并没有关闭,而是由连接池管理器继续管理回收,并为下一次使用做好准备,。数据库连接池技术所带来的好处是:(1)资源重用:由于数据库连接得到重用,避免了频繁创建时放链接所带来的大量性能开销,在减少系统性能消耗的基础上增强了系统运行环境的平稳性。(减少了内存的碎片,减少了数据库临时进程、线程的数量)
- 更快的系统响应速度:数据库连接池在初始化过程中,可能已经创建了若干数据库连接置于池中备用,且此时连接的初始化工作均已完成。对于业务请求处理而言,直接利用现有可用连接,可避免数据库连接初始化和释放过程的时间开销,从而缩短系统整体响应时间。
- 统一的连接管理,避免数据库连接泄露,在较为完备的数据库连接池实现中可根据预先的连接占用超时设定,强制收回被占用连接,从而避免常规数据库连接操作中可能出现的资源泄露。
- 数据库连接池有两种:1:自定义数据库连接池
2:Tomcat DBCP连接池
DBCP-----(DataBase Connection Pooling):服务器提供的数据库连接池技术。
在实际中,自己编写数据库的连接是比较麻烦的。编写数据库连接池也是比较耗时的。
所以实际中是使用DBCP
使用DBCP的步骤:编写JNDI配置代码如下:
将以下插入站点属性设置文件的<context></context>之间(tomcat的安装目录的conf文件夹下的server.xml或context.xml或者虚拟主机的ROOT.xml)
/**
* 自定义的连接池
* JNDI数据源配置
* <Resource auth="Container"//定义为容器
* type="javax.sql.DataSource"//定义类型为数据源
* driverClassName="com.mysql.jdbc.Driver"//定义要连接的数据库驱动,以mysql为例
* url="jdbc:mysql://10.0.0.1:3306/hn_net?useUnicode=true&//定义要连接的数据库路径,同时加载相关参数,
* characterEncoding=GBK&autoReconnect=true"//对应为数据库服务器为10.0.0.1,数据库端口为3306,数据库名为好hn_net,
*数据库连接时的编码为GBK,autoReconnection未连接断开时是否需要重新连接,
* name="jdbc/ProDataPool"//namedingyiJNDI的名字
* username="testhn"//定义数据库的用户名
* password="123"//定义连接数据库的密码
* maxActive="5"//定义并发的最大连接数
* maxIdle="2"//定义连接的最大空闲数
* maxWait="5000"//定义连接的最大等待数,单位为毫秒
* removeAbandoned="true"//连接是否自我中断,默认为false
* removeAbandonedTimeout="300"//定义多长时间连接至我中断,单位为秒
* testOnReturn="true"//获取连接前判断连接是否有效
* testWhileIdle="true"//移除连接对象时测试其是否是有效空闲的
* validationQuery="select now()"/>//验证链接是否是成功有效的sql语句
*/
二:编写加载数据库连接池的java程序
密码的加密与解密:
1单钥密码体制
2消息摘要
3diffie-Hellman密钥一致协议
4非对称算法与公钥体系
5数字签名