学习DatabaseConnectionPool--数据库连接池(随记一)

来源:互联网 发布:淘宝禁止返现 编辑:程序博客网 时间:2024/05/01 16:36

    一个星期来,我经常花时间去研究数据库连接池,感觉有点吃力,没办法,java基础不好。
学习的开始,是从一篇关于数据库连接池的理论文章开始,地址如下:
    《基于JDBC的数据库连接池技术研究与应用》
   
http://hi.baidu.com/tryonmind/blog/item/261ad4549d7e3859d109060f.html 

    里面有相当多的java关键字及其方法尚不知晓,只能一边查文档,以便学习了。记录如下:

    1.Vector 
    声明方法:private Vector drivers = new Vector();

    说明:Vector 类可以实现可增长的对象“数组”。优点:Vector 的大小可以根据需要增大或缩小,以适应创建 Vector 后进行添加或移除项的操作。此间涉及向量的操作。详细操作方法可以查阅 java5.0的API帮助文档。

    这里遭遇的一个可能性问题是:你是jdk1.4还是在jdk5.0环境下编译,对Vecter声明使用有差异,5.0比较严格。

    2.Hashtable 哈希表
    声明方法:Hashtable ht = new
 Hashtable();

    说明:哈希表是一种重要的存储方式,也是一种常见的检索方法。其基本思想是将关系码的值作为自变量,通过一定的函数关系计算出对应的函数值,把这个数值解释为结点的存储地址,将结点存入计算得到存储地址所对应的存储单元。检索时采用检索关键码的方法。

    现在哈希表有一套完整的算法来进行插入、删除和解决冲突。
    在Java中哈希表用于“存储对象”,实现快速检索。
    Hashtable 的实例有两个参数影响其性能:初始容量加载因子容量 是哈希表中 的数量,初始容量 就是哈希表创建时的容量。

    java的支持:java.util.Hashtable<K,V> 哈希表的操作也是很丰富。


          
    3.Properties 属性列表
    声明方法:Properties dbProps = new Properties();
    public class Properties extends Hashtable<Object,Object>

    说明:Properties 继承于 Hashtable,所以可对 Properties 对象应用 put 和 putAll 方法,但强烈建议使用应该使用 setProperty 方法        

    Properties 类表示了一个持久的属性集。Properties 可保存在流中或从流中加载。属性列表中每个键及其对应值都是一个字符串。 

    例如连接池中读取属性文件的应用:

InputStream is = getClass().getResourceAsStream("db.properties");//
  Properties dbProps = new Properties();
  
try

  
{
   dbProps.load( is );
  }

  
catch ( Exception e )
  
{
   System.err.println( 
"不能读取属性文件" + "请确保db.properties在CLASSPATH指定的路径中"
 ); 
   
return
;
  }

   
    主要方法有:
     String getProperty(String key) 用指定的键在此属性列表中搜索属性。    
     getProperty(String key, String defaultValue)用指定的键在属性列表中搜索属性。 
     
     
      void list(PrintStream out) 将属性列表输出到指定的输出流。         
     list(PrintWriter out) 将属性列表输出到指定的输出流。
           
      void load(InputStream inStream) 从输入流中读取属性列表(键和元素对)。        
      void loadFromXML(InputStream in) 将指定输入流中由 XML 文档所表示的所有属性加载到此属性表中。
  
    Enumeration<?> propertyNames() 返回属性列表中所有键的枚举,如果在主属性列表中未找到同名的键,则包括默认属性列表中不同的键。

    更详细的就不提,查文档 

    连接池应用:
     String driverClasses = props.getProperty("drivers");读取到属性文件中drivers的值


    4.Enumeration

    说明:实现 Enumeration 接口的对象,它生成一系列元素,一次生成一个。连续调用 nextElement 方法将返回一系列的连续元素。

    boolean hasMoreElements()  测试此枚举是否包含更多的元素。 
    E nextElement()   如果此枚举对象至少还有一个可提供的元素,则返回此枚举的下一个元素。
     
    这些方法主要通过向量的元素、哈希表的键以及哈希表中的值进行枚举。枚举也用于将输入流指定到 SequenceInputStream 中。

    连接池应用:
     Enumeration propsNames = props.propertyNames(); //读取属性列表的值,用Enumeration进行标记和调用


原创粉丝点击