`

JAVA开发中数据源创建方法

    博客分类:
  • java
阅读更多

    数据源是数据库连接池里面的概念,连接池就是指当服务器启动时,先建立几个连接,在应用需要与数据库连接时,就从连接池里获取,使用完以后,不是将连接断掉,而是放回到池里面,这样就减少了数据连接创建的次数,大大提高了连接性能。而数据源就是给服务器一个配置信息,然服务器就知道怎么使用JDBC驱动,比如url参数,数据库实例名、用户名与密码等等。Java中的数据源就是javax.sql.DataSource。DataSource的创建可以有不同的实现,下面以mysql为例介绍几种常见DataSource的创建方法:

一、JNDI方式创建DataSource

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

<Context><!--MySql-->
<Resource name="jdbc/movie" auth="Container" type="javax.sql.DataSource"
             maxActive="100" maxIdle="30" maxWait="10000"
             username="[用户名]" password="[密码]" driverClassName="com.mysql.jdbc.Driver"
             url="jdbc:mysql://localhost:3306/[实例名]?autoReconnect=true"/>
</Context>
正确的配置后,就可以在程序中以JNDI的方式创建数据源,得到数据库连接并进行相应的操作。代码如下:

try {
            Context context = new InitialContext();
            if (context == null){
                throw new Exception("create context failed!");
            }          
            DataSource ds = (DataSource) context.lookup("java:comp/env/jdbc/[实例名]");
            if (ds == null) {
                Thread.sleep(2000);
                ds = (DataSource) context.lookup("java:comp/env/jdbc/[实例名]");
                if (ds == null) {
                    throw new Exception("get datasource failed!");
                }
            }
        } catch (NamingException ne) {
            throw ne;
        } catch (Exception e) {
            throw e;
        }

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

    以这种方式创建数据源必须先准备两个jar文件:commons-dbcp.jar 和 commons-pool.jar,将这两个jar包放到WEB-INF/lib目录下。以这种方式创建的数据源就不再是javax.sql.DataSource了,而是org.apache.commons.dbcp.BasicDataSource。而且不再需要配置任何文件就可以直接使用。代码如下:

// 创建BasicDataSource对象
    BasicDataSource ds = new BasicDataSource();
    ds.setDriverClassName("com.mysql.jdbc.Driver");
    ds.setUrl("jdbc:mysql://localhost:3306/[实例名]");
    ds.setUsername("[用户名]");
    ds.setPassword("[密码]");
    ds.setInitialSize(50);
    ds.setMaxActive(100);
    ds.setMaxIdle(30);
    ds.setMaxWait(10000);
 // 关闭数据源连接
    ds.close();

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

// 创建ComboPooledDataSource对象
ComboPooledDataSource ds = new ComboPooledDataSource();
ds.setDriverClass("com.mysql.jdbc.Driver");
ds.setJdbcUrl("jdbc:mysql://localhost:3306/[实例名]");
ds.setUser("[用户名]");
ds.setPassword("[密码]");
ds.setInitialPoolSize(50);
ds.setMaxPoolSize(100);
ds.setMaxIdleTime(10000);

四、Proxool方式创建数据源
    采用该方式创建数据源需要准备的jar包:proxool-01.9.0RC3.jar,将其放到WEB-INF/lib目录下,之后就可以项目中创建ProxoolDataSource对象,其代码如下:

// 创建ProxoolDataSource对象
ProxoolDataSource ds = new ProxoolDataSource();
ds.setDriver("com.mysql.jdbc.Driver");
ds.setDriverUrl("jdbc:mysql://localhost:3306/[实例名]");
ds.setUser("[用户名]");
ds.setPassword("[密码]");

五、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
将这些jar包放到WEB-INF/lib目录下,就可以在程序中创建BoneCPDataSource对象,代码如下:

// 创建BoneCPDataSource对象
    BoneCPDataSource ds = new BoneCPDataSource();
    ds.setDriverClass("com.mysql.jdbc.Driver");
    ds.setJdbcUrl("jdbc:mysql://localhost:3306/[实例名]");
    ds.setUsername("[用户名]");
    ds.setPassword("[密码]");
    ds.setAcquireIncrement(1);
    ds.setAcquireRetryDelay(10000);
    ds.setIdleConnectionTestPeriod(100);
    ds.setMinConnectionsPerPartition(2);
    ds.setMaxConnectionsPerPartition(20);
    ds.setPartitionCount(2);

在创建完数据源之后,就可以利用jdbc在程序与数据库之间建立连接,但要注意的是,要有相关的jdbc驱动包,不同的数据库需要不同的驱动,一般在各个数据库官方网都可以获取。

分享到:
评论

相关推荐

    java+hibernate双数据源配置

    在Java开发中,特别是在大型企业级应用中,经常需要处理多个数据库的情况,比如主从数据库、读写分离等。在这种场景下,实现双数据源配置是必不可少的技术之一。本篇将详细讲解如何在Java项目中结合SpringBoot和...

    JNDI配置数据源在java web开发中的使用

    在Java Web开发中,JNDI(Java Naming and Directory Interface)是一个重要的标准接口,它允许应用程序查找和使用各种资源,包括数据源(Datasource)。数据源是管理数据库连接的组件,能够有效地处理数据库连接的...

    java spring 多数据源

    - 如果你使用JdbcTemplate或JPA,需要为每个数据源创建相应的`JdbcTemplate`或`EntityManagerFactory` bean。 - 通过`@Qualifier`注解在Service层注入正确数据源的`JdbcTemplate`或`EntityManager`。 5. **实战...

    Java多数据源源码

    在Java开发中,多数据源是指应用程序需要连接和操作多个不同的数据库。这通常发生在大型系统中,例如,可能需要一个数据库来存储用户信息,另一个数据库处理订单,还可能有第三个数据库用于日志记录。Spring Boot...

    中国省市区数据源_java解析

    本资源包专注于“中国省市区数据源”的Java解析,这对于开发涉及地理信息系统的应用程序至关重要。在本文中,我们将深入探讨中国省市区数据源的含义、其重要性以及如何使用Java进行解析。 首先,让我们了解什么是...

    java多数据源代码实例

    1. 配置数据源:在Spring的配置文件中,为每个数据源创建一个DataSource Bean,如:primaryDataSource和secondaryDataSource。 ```xml &lt;!-- 数据源属性配置 --&gt; &lt;!-- 数据源属性配置 --&gt; ``` 2. 配置数据源...

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

    在Java开发过程中,数据源(DataSource)扮演着非常重要的角色,它负责管理数据库连接资源,为应用程序提供高效、可靠的数据库访问支持。`javax.sql.DataSource`接口定义了标准的数据源接口规范,不同的实现方式能够...

    java多数据源注解方式

    在Java开发中,多数据源配置是常见的需求,特别是在大型企业级应用中,可能需要连接到多个数据库,例如,一个用于存储主业务数据,另一个用于日志或审计数据。本篇将详细介绍如何通过注解的方式来实现Java中的多数据...

    Java多数据源共存,同时使用多个数据源

    在Java开发中,多数据源共存是一种常见的需求,特别是在大型企业级应用或者分布式系统中。这涉及到如何在同一个应用程序中有效地管理和切换不同的数据库连接,以实现数据的隔离或者负载均衡。以下是对这一主题的详细...

    SpringBoot配置多数据源实现动态切换数据源

    在企业级应用开发中,数据源的管理是一个关键部分,特别是在需要访问多个数据库的应用中。SpringBoot框架以其简洁的配置和强大的功能深受开发者喜爱。本文将深入探讨如何在SpringBoot项目中配置多数据源,并实现数据...

    java多数据源

    在Java开发中,多数据源是指应用程序能够连接和操作多个不同的数据库,这在大型系统或者分布式环境中非常常见。为了实现这种功能,开发者通常会利用框架如SpringMVC,结合ORM框架如MyBatis或Hibernate来处理数据访问...

    java数据源配置

    在Java开发中,数据源(DataSource)是连接数据库的关键组件,它管理数据库连接,提供高效、安全的数据库访问。在本篇文章中,我们将深入探讨Java数据源配置,特别是在Tomcat服务器中的应用。 首先,理解数据源的...

    java 多数据源

    在Java开发中,多数据源是指应用程序可以同时连接并操作多个不同的数据库。这种技术在大型系统中非常常见,比如在需要实现数据隔离、读写分离、分库分表等复杂需求时,多数据源就显得尤为重要。Spring、SpringMVC和...

    java简单分布式架构,多个数据源,线程池多线程访问

    本项目围绕“Java简单分布式架构,多个数据源,线程池多线程访问”这一主题展开,旨在通过利用Java技术栈实现一个高效的分布式系统。 首先,我们关注的是“分布式”这一概念。分布式系统是由多台计算机通过网络连接...

    JAVA开发源代码

    【JAVA开发源代码】是一个与Java编程相关的学习资源,它可能包含了从项目构思到最终实现的完整开发过程。虽然描述中提到的是一个简洁的20字概述,但我们可以深入探讨Java开发的一些关键知识点。 首先,Java是一种...

    Java连接数据库+之+建立数据源

    在Java中,可以通过JDBC(Java Database Connectivity)API来连接这个数据源,使用`DriverManager.getConnection()`方法或 DataSource 对象的`getConnection()`方法,传入DSN、用户名和密码来建立连接。 在实际开发...

    jasperreport+ireport创建javaBean多数据源报表

    2. **配置数据源**: 在ireport中,可以设置JavaBean数据源,指定JavaBean类名和属性映射。 3. **生成.jasper文件**: 保存并编译.jrxml文件,生成.jasper二进制模板。 4. **Java代码集成**: 在Java项目中,加载....

    JasperReport中使用多个数据源的方法

    ### JasperReport中使用多个数据源的方法详解 #### 场景背景 在报表开发过程中,有时我们需要在一个报表中展示不同来源的数据。例如,在同一份报告中同时呈现交叉表和饼状图,而这两部分数据可能源自不同的数据库表...

    两种配置数据源的方法java

    在Java开发中,数据源(DataSource)是连接数据库的关键组件,它管理数据库连接,提供连接池功能,提高系统性能并优化资源使用。本教程将详细介绍两种配置数据源的方法:通过Tomcat服务器配置以及使用Apache Commons...

    MyEclipse 6 Java 开发中文教程(源代码)

    学习者可以学习如何在MyEclipse中创建数据源,编写SQL语句,以及进行数据操作。 总之,《MyEclipse 6 Java 开发中文教程》是一份详尽的学习资料,通过源代码实例,不仅让学习者掌握Java编程基础,还能让他们熟悉...

Global site tag (gtag.js) - Google Analytics