JDBC连接池自我总结

sql注入漏洞
利用预编译对象来解决,sql提供了一个新的工作平台preparestatment.
这个预编译对象会在创建对象的时候通过提前定义sql语句格式来避免通过字符串拼接问题来避免sql注入漏洞.
可以提高SQL执行的速度(只需要改变参数的sql语句不需要重新创建平台,只需要传入新的参数就可以了)
在执行一条语句的时候理论上statment 比 prepastament 快一些

1.什么是连接池?
连接池,顾名思义就是一个放着许多链接的池子,里面的链接满足等待序列.
能提高链接的重复使用效率,避免每一次链接的创建和销毁而占用系统太多的资源

2.链接池的原理理解
通过自定义连接池来理解:
2.1
首先一个连接池需要有很多链接,然后需要一个收留链接的地方,就是集合,用Linklist 集合就是因为增删比较快.
为了提高效率,在调用自定义连接池类的时候就应该创建好连接池,这样用的时间会少一些,所以在构造方法的时候就应该把链接创建好.

如何得到链接,可以利用集合的remove方法,这样既可以从集合删除一个链接,我们还能得到一个链接.
用完链接之后利用add方法把链接还回去

3.装饰者模式
装饰者模式就是指一个类或者一个借口的方法需要增强来满足需求,这个时候可以使用装饰者模式来增强功能
里面需要你增强的功能就把方法重写,不需要增强的功能就调用原方法就行了.
所以类中需要实现原接口,并且通过构造方法传入一个原接口实现类对象.(为什么不在类中定义一个实现对象,是因为传入的话可以降低类与类之间的耦合性,可读性也提高了)

注意:在使用连接池的并归还链接之后注意把工作平台(或者还有resualt set关闭)

两大连接池的应用
1.c3p0
这个连接池比较通用,特点是获取链接的时候不用读取配置文件
还能同时配置多个不同的数据库
2.druid 德鲁伊连接池
这个连接池是由阿里巴巴提供的,功能和性能都比较强大,但是获得链接之前需要手动读取配置文件,但是可以免写驱动,
或自动通过url地址来自动注册驱动.目前支付宝和淘宝都是用的这套数据库
个人处于自学阶段,大学生一枚.欢迎各位大佬交流学习经验,总结不对的地方多多海涵
个人wx:ALBB0312

猜你喜欢

转载自blog.csdn.net/weixin_43511944/article/details/84474998