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);
以上几种创建数据源的方式多以硬编码来实现,在实际应用中应该以配置文件的形式出现,以方便管理和维护。
相关推荐
如果不想使用JTA,Spring还提供了一种基于编程式事务管理的解决方案,称为PROPAGATION_REQUIRED。在这种模式下,开发者需要手动调用`TransactionTemplate`或在Service方法上使用`@Transactional`注解来开启和管理...
总的来说,"多数据源事务之解决方案jta+atomikos"是Java环境下解决分布式事务问题的一种有效途径。通过JTA和Atomikos,开发者可以构建出能够处理复杂事务场景的应用,同时享受到Java EE标准带来的可移植性和灵活性。...
综上所述,"spring-boot-easy-connection-pool-master"项目提供了一种实用的解决方案,它结合了Spring Boot的便利性和多数据源的灵活性,为大数据环境下的数据访问和管理带来了极大的便利。通过深入学习和实践该项目...
4. **联邦数据库技术**:IBM的Websphere Information Integrator等产品提供了一种联邦数据库的能力,允许用户通过单一登录和统一视图来访问和操作多种类型的数据源,无论是关系型数据库、文件、Web服务还是协作系统...
方案概述 方案一:优化现有mysql数据库。优点:不影响现有业务,源程序不需要修改代码,成本最低。...三种方案我都试了一遍,而且都形成了落地解决方案。该过程心中慰问跑路的那几个开发者一万遍 :)
除了上述提到的两种数据源外,iReport 还支持以下几种类型的数据源: 1. **XMLDataSource**:允许从 XML 文档中读取数据。 2. **JavaBeanCollectionDataSource**:使用 JavaBean 集合作为数据来源。 3. **CSVData...
6. **使用方法**:`使用方法.txt`文件提供了解决方案的指导,帮助用户理解和使用这个通讯录应用。通常,它会包含步骤如如何运行程序、如何配置数据源、如何执行基本操作等。 7. **项目结构**:尽管具体细节未知,一...
Oracle RAC(Real Application Clusters)是一种高可用性和高性能的数据库解决方案。为了实现高可用性和高性能,需要将 Oracle 数据库配置为 RAC 集群模式。配置 Oracle RAC 集群数据源需要考虑多个方面,包括数据源...
为了解决这个问题,我们可以采用以下几种策略: 1. **分批导出**: - 考虑将大数据集分成若干小批次,每次只处理和导出一部分数据。例如,可以按行或按特定数量的数据进行划分。 - 使用`java.util.Iterator`遍历...
- **算法实现**:可能包括排序算法(如冒泡排序、快速排序)、查找算法(如二分查找)或其他数学问题的解决方案。 - **数据结构**:如数组、链表、栈、队列、树等,它们是解决复杂问题的基础。 - **图形用户界面**...
多数据源配置通常用于以下几种场景: 1. **主从复制**:主数据库负责写操作,从数据库负责读操作,通过这种方式提高系统的读取性能并降低主数据库的压力。 2. **数据分片**:当单个数据库的数据量过大时,可以通过...
本文提出了一种基于PB到Java的Web系统重构再工程的解决方案,该解决方案主要包括以下几个步骤: 1. **概念模型构建**:通过对PB代码进行程序分析来构建概念模型。这一步骤涉及利用自动化工具解析PB代码,提取出关键...
这个压缩包文件"基于Apache Tomcat的一站式Java应用服务器解决方案.zip"很可能包含了关于如何利用Tomcat搭建和管理Java应用程序的详细指南。 Apache Tomcat的核心功能包括: 1. **Servlet容器**:Tomcat的主要职责...
《Java SOA Cookbook》是一本专注于Java面向服务架构(Service-Oriented Architecture,...这些例子可以帮助解决在开发过程中遇到的具体问题,提供解决方案和最佳实践,对于提升开发者技能和项目实施效率具有重要意义。
Java EE 数据初始化应用中的设计模式解决方案是一种基于设计模式的数据初始化方法,旨在解决 Java EE 应用数据初始化时的先后顺序及依赖关系问题。该方法首先将要初始化的数据看做一个复杂对象,通过建造者模式的...
总的来说,这个QQ RTX Java解决方案涵盖了以下几个关键知识点: 1. Oracle数据库的使用与JDBC接口。 2. Java网络编程,包括与RTX API的集成。 3. 数据库事务处理以保证数据一致性。 4. Java代码的保护与混淆技术。 ...
在`ireport`中,用户可以配置以下几种常见的数据源类型: - **JDBC Connection**:连接到特定的关系型数据库。 - **XML DataSource**:从XML文档中读取数据。 - **JavaBean Collection DataSource**:使用JavaBean...
首先,IBM WebSphere门户整合解决方案是一种先进的企业级平台,用于构建、部署和管理集成的Web应用程序和门户。它提供了一个统一的入口点,让用户能够访问多种业务应用、信息资源和协作工具。WebSphere门户支持个性...