ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

DataSource数据源,以及连接池概念,以及单利模式

2022-06-28 20:04:43  阅读:148  来源: 互联网

标签:对象 数据源 数据库 模式 实例 DataSource 单例 连接 连接池


  1. DataSource数据源,有很多品牌....

  2. 数据源,就是一个数据的来源,比如:url username password

  3. 数据库的getConnection最大连接数200,

  • 对于每一次数据库连接,使用完后都得断开。否则,如果程序出现异常而未能关闭,将会导致数据库系统中的内存泄漏,最终将不得不重启数据库。还有,这种开发不能控制被创建的连接对象数,系统资源会被毫无顾及的分配出去,如连接过多,也可能导致内存泄漏,服务器崩溃。

  • 数据库连接”是一种稀缺的资源,查询完数据库后,如果不关闭连接,而是暂时存放起来,当别人使用时,把这个连接给他们使用。就避免了一次建立数据库连接和断开的操作时间消耗,也就是复用。

资源池(resource pool)

  1. 预先在缓冲池中放入一定数量的连接,当需要建立数据库连接时,只需从“缓冲池”中取出一个,使用完毕之后再放回去。我们可以通过设定连接池最大连接数来防止系统无尽的与数据库连接。更为重要的是我们可以通过连接池的管理机制监视数据库的连接的数量﹑使用情况,为系统开发﹑测试及性能调整提供依据。

单列模式

  1. 单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。

  2. 这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。

  3. 注意:

    • 1、单例类只能有一个实例。

    • 2、单例类必须自己创建自己的唯一实例。

    • 3、单例类必须给所有其他对象提供这一实例。

单例

的目的是保证某个类仅有一个实例。当有某些类创建对象内存开销较大时可以考虑使用该模式。单例模式又分为 饿汉式 和 懒汉式 。

饿汉

该模式在类被加载时就会实例化一个对象

他就是不管其他的直接先创建出来

 

public class Person {
  //饿汉式单例
  private static Person person = new Person();
  private Person(){}
public static Person getInstance(){
return person;
}
}

特点

该模式能简单快速的创建一个单例对象,而且是线程安全的(只在类加载时才会初始化,以后都不会)。但它有一个缺点,就是不管你要不要都会直接创建一个对象,会消耗一定的性能(当然很小很小,几乎可以忽略不计,所以这种模式在很多场合十分常用而且十分简单)

懒汉

线程不安全,但是速度快,因为他们会同时进行,

线程安全,一个执行过,另一个在执行

所以速度

该模式只在你需要对象时才会生成单例对象

public class User { //懒汉式单例,只有在调用getInstance时才会实例化一个单例对象 public static User user; private User(){ } public static User getInstance(){ if(user==null){ //step 1. user = new User(); //step 2 } return user; }}

线程不安全

标签:对象,数据源,数据库,模式,实例,DataSource,单例,连接,连接池
来源: https://www.cnblogs.com/huchaoqun/p/16420839.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有