`

几种常用的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);



以上几种创建数据源的方式多以硬编码来实现,在实际应用中应该以配置文件的形式出现,以方便管理和维护。

http://javacrazyer.iteye.com/blog/792872
分享到:
评论

相关推荐

    springboot多数据源即分布式事务解决方案

    如果不想使用JTA,Spring还提供了一种基于编程式事务管理的解决方案,称为PROPAGATION_REQUIRED。在这种模式下,开发者需要手动调用`TransactionTemplate`或在Service方法上使用`@Transactional`注解来开启和管理...

    多数据源事务之解决方案jta+atomikos

    总的来说,"多数据源事务之解决方案jta+atomikos"是Java环境下解决分布式事务问题的一种有效途径。通过JTA和Atomikos,开发者可以构建出能够处理复杂事务场景的应用,同时享受到Java EE标准带来的可移植性和灵活性。...

    springboot连接池、动态配置多数据源连接池,特别适合大数据部门、数据中台服务的多数据源连接池.zip

    综上所述,"spring-boot-easy-connection-pool-master"项目提供了一种实用的解决方案,它结合了Spring Boot的便利性和多数据源的灵活性,为大数据环境下的数据访问和管理带来了极大的便利。通过深入学习和实践该项目...

    信息整合解决方案和应用实践

    4. **联邦数据库技术**:IBM的Websphere Information Integrator等产品提供了一种联邦数据库的能力,允许用户通过单一登录和统一视图来访问和操作多种类型的数据源,无论是关系型数据库、文件、Web服务还是协作系统...

    MySQL千万数据解决方案

    方案概述 方案一:优化现有mysql数据库。优点:不影响现有业务,源程序不需要修改代码,成本最低。...三种方案我都试了一遍,而且都形成了落地解决方案。该过程心中慰问跑路的那几个开发者一万遍 :)

    Java通讯录源代码

    6. **使用方法**:`使用方法.txt`文件提供了解决方案的指导,帮助用户理解和使用这个通讯录应用。通常,它会包含步骤如如何运行程序、如何配置数据源、如何执行基本操作等。 7. **项目结构**:尽管具体细节未知,一...

    配置Oracle RAC集群数据源

    Oracle RAC(Real Application Clusters)是一种高可用性和高性能的数据库解决方案。为了实现高可用性和高性能,需要将 Oracle 数据库配置为 RAC 集群模式。配置 Oracle RAC 集群数据源需要考虑多个方面,包括数据源...

    java解决大批量数据导出Excel产生内存溢出的方案

    为了解决这个问题,我们可以采用以下几种策略: 1. **分批导出**: - 考虑将大数据集分成若干小批次,每次只处理和导出一部分数据。例如,可以按行或按特定数量的数据进行划分。 - 使用`java.util.Iterator`遍历...

    课程设计java程序源代码

    - **算法实现**:可能包括排序算法(如冒泡排序、快速排序)、查找算法(如二分查找)或其他数学问题的解决方案。 - **数据结构**:如数组、链表、栈、队列、树等,它们是解决复杂问题的基础。 - **图形用户界面**...

    springboot之mybatis多数据源最简解决方案.docx

    多数据源配置通常用于以下几种场景: 1. **主从复制**:主数据库负责写操作,从数据库负责读操作,通过这种方式提高系统的读取性能并降低主数据库的压力。 2. **数据分片**:当单个数据库的数据量过大时,可以通过...

    从PB到Java的Web系统重构再工程_解决方案研究

    本文提出了一种基于PB到Java的Web系统重构再工程的解决方案,该解决方案主要包括以下几个步骤: 1. **概念模型构建**:通过对PB代码进行程序分析来构建概念模型。这一步骤涉及利用自动化工具解析PB代码,提取出关键...

    基于Apache Tomcat的一站式Java应用服务器解决方案.zip

    这个压缩包文件"基于Apache Tomcat的一站式Java应用服务器解决方案.zip"很可能包含了关于如何利用Tomcat搭建和管理Java应用程序的详细指南。 Apache Tomcat的核心功能包括: 1. **Servlet容器**:Tomcat的主要职责...

    Java SOA Cookbook源代码

    《Java SOA Cookbook》是一本专注于Java面向服务架构(Service-Oriented Architecture,...这些例子可以帮助解决在开发过程中遇到的具体问题,提供解决方案和最佳实践,对于提升开发者技能和项目实施效率具有重要意义。

    Java EE数据初始化应用中的设计模式解决方案.pdf

    Java EE 数据初始化应用中的设计模式解决方案是一种基于设计模式的数据初始化方法,旨在解决 Java EE 应用数据初始化时的先后顺序及依赖关系问题。该方法首先将要初始化的数据看做一个复杂对象,通过建造者模式的...

    QQ rtx java解决方案

    总的来说,这个QQ RTX Java解决方案涵盖了以下几个关键知识点: 1. Oracle数据库的使用与JDBC接口。 2. Java网络编程,包括与RTX API的集成。 3. 数据库事务处理以保证数据一致性。 4. Java代码的保护与混淆技术。 ...

    IBM门户整合解决方案、存储管理解决方案、网络管理介绍

    首先,IBM WebSphere门户整合解决方案是一种先进的企业级平台,用于构建、部署和管理集成的Web应用程序和门户。它提供了一个统一的入口点,让用户能够访问多种业务应用、信息资源和协作工具。WebSphere门户支持个性...

Global site tag (gtag.js) - Google Analytics