zoukankan      html  css  js  c++  java
  • Java中常用的数据源

    几种常用的Java数据源解决方案

    Java中的数据源就是javax.sql.DataSource。DataSource的创建可以有不同的实现。

    JNDI方式创建DataSource

        以JNDI方式创建数据源首先要配置数据源的相关连接信息,也就是数据源连接池。该配置应该在Tomcat安装目录下的conf/context.xml文件中配置。其配置如下:

        <Context>

    ……

       <!-- MySql -->

       <Resource name="jdbc/NutzDemo" auth="Container"

               type="javax.sql.DataSource"maxActive="100" maxIdle="30"

               maxWait="10000"username="root" password="root"

               driverClassName="com.mysql.jdbc.Driver"

               url="jdbc:mysql://localhost:3306/cheng"/>

        ……

    </Context>

    然后,在程序中以JNDI的方式创建数据源,得到数据库连接已进行相应的操作。代码如下:

        // 初始化JNDI上下文,创建DataSource对象

        Context initContext = new InitialContext();

        Context context = (Context)initContext.lookup("java:comp/env");

               DataSourcedataSource =  (DataSource)context.lookup("jdbc/NutzDemo");

     

     

    Apache提供的简单连接池创建数据源

    以这种方式创建数据源必须先准备两个jar文件:commons-dbcp.jar 和 commons-pool.jar。

    以这种方式创建的数据源就不再是javax.sql.DataSource。DataSource了,而是org.apache.commons.dbcp.BasicDataSource。而且不再需要配置任何文件就可以直接使用。代码如下:

    // 创建BasicDataSource对象

        BasicDataSource ds = new BasicDataSource();

        ds.setDriverClassName("com.mysql.jdbc.Driver");

        ds.setUrl("jdbc:mysql://localhost:3306/cheng");

        ds.setUsername("root");

        ds.setPassword("root");

        ds.setInitialSize(50);

        ds.setMaxActive(100);

        ds.setMaxIdle(30);

        ds.setMaxWait(10000);

       

        // 关闭数据源连接

    ds.close();

     

    C3P0方式创建数据源

        使用C3P0方式创建数据源应该首先准备一个jar文件:c3p0-0.9.1.2.jar,将其放到web/lib目录下,就可以在项目中使用C3P0创建数据源,C3P0创建的数据源对象也不是DataSource对象,而是ComboPooledDataSource,代码如下:

        // 创建ComboPooledDataSource对象

        ComboPooledDataSource ds = new ComboPooledDataSource();

        ds.setDriverClass("com.mysql.jdbc.Driver");

        ds.setJdbcUrl("jdbc:mysql://localhost:3306/cheng");

        ds.setUser("root");

        ds.setPassword("root");

        ds.setInitialPoolSize(50);

        ds.setMaxPoolSize(100);

        ds.setMaxIdleTime(10000);

     

    Proxool方式创建数据源

        应该准备的jar文件为:proxool-01.9.0RC3.jar,之后在项目中创建ProxoolDataSource对象,其代码如下:

        // 创建ProxoolDataSource对象

        ProxoolDataSource ds = new ProxoolDataSource();

        ds.setDriver("com.mysql.jdbc.Driver");

        ds.setDriverUrl("jdbc:mysql://localhost:3306/cheng");

        ds.setUser("root");

        ds.setPassword("root");

     

    BoneCP方式创建数据源

        BoneCP是一个快速高效,开源免费的Java数据库接池。

    创作者称,BoneCP在性能上会完全超越所有主流的Java连接池。它可以帮你管理数据连接,让你的应用程序能更快速地访问数据库。比C3P0/DBCP(DataBaseconnection pool,数据库连接池)连接池快25倍。这个数据库连接池采用Google Collection作为内部的集合类框架,而且现在的版本已经很稳定。

    要使用BoneCP,必须用到的jar文件有:

    · bonecp-0.6.5.jar

    · google-collections-1.0.jar

    · slf4j-api-1.5.11.jar

    · slf4j-log4j12-1.5.11.jar

    ·log4j-1.2.15.jar

    在程序中创建BoneCPDataSource对象,代码如下:

    // 创建BoneCPDataSource对象

        BoneCPDataSource ds = new BoneCPDataSource();

        ds.setDriverClass("com.mysql.jdbc.Driver");

        ds.setJdbcUrl("jdbc:mysql://localhost:3306/cheng");

        ds.setUsername("root");

        ds.setPassword("root");

        ds.setAcquireIncrement(1);

        ds.setAcquireRetryDelay(10000);

        ds.setIdleConnectionTestPeriod(100);

    ds.setMinConnectionsPerPartition(2);

        ds.setMaxConnectionsPerPartition(20);

    ds.setPartitionCount(2);

  • 相关阅读:
    左孩子右兄弟的字典树
    UVA 1401 Remember the Word
    HDOJ 4770 Lights Against Dudely
    UvaLA 3938 "Ray, Pass me the dishes!"
    UVA
    Codeforces 215A A.Sereja and Coat Rack
    Codeforces 215B B.Sereja and Suffixes
    HDU 4788 Hard Disk Drive
    HDU 2095 find your present (2)
    图的连通性问题—学习笔记
  • 原文地址:https://www.cnblogs.com/ConfidentLiu/p/7118071.html
Copyright © 2011-2022 走看看