zoukankan      html  css  js  c++  java
  • JAVA高级编程(数据源datasource)

    数据源:通过jdbc连接数据库,多建立几条连接放在数据源里面。可以设置数据源的最大连接数,同时活跃的连接数,最少空闲的连接数,能够同时接收处理的连接数等等。

    dbcp数据源

    需要的jar包:

    1. commons-dbcp.jar;
    2. commons-pool.jar
    3. mysql-connector-java.jar

    前两个jar包到阿帕奇官网下载。第三个jar包到mysql官网下载。

    他是对jdbc的封装。底层还是要通过jdbc连接数据库的。实现了java.sql.DataSource接口的类有BasicDataSourceFactory和BasicDataSource。

    这两个类是启动database的。

    image

    image

    其中BasicDataSourceFactory底层实际上是先创建了BasicDataSource的对象,然后给BasicDataSource对象

    进行分钟相关属性的赋值。比如username,password,url,driverClassName等等。BasicDataSource则是直接通过set方法对这些属性直接赋值。

    通过getConnection方法获取数据库连接(Connection接口)。之后的操作就和jdbc一样了。

    C3P0数据源

    需要的jar包

    c3p0-0.9.5.2.jar

    mchange-commons-java-0.2.11.jar

    mysql-connector-java-5.1.40-bin.jar

    这些资源网上很多一找一大片。

    这个类(ComboPooledDataSource)是启动datadase数据源的

    (一)ComboPooledDataSource source = new ComboPooledDataSource();

         source.setDriverClass("com.mysql.jdbc.Driver");
            source.setUser("root");
            source.setPassword("1213265442");
            source.setJdbcUrl("jdbc:mysql://localhost:3306/user");通过set方法即可设置数据池的相关参数(最大连接数,同时活跃的连接数,最少空闲的连接数,能够同时接收处理的连接数等等)

    (二)ComboPooledDataSource source = new ComboPooledDataSource("intergalactoApp");

    编写c3p0-config.xml文件放在src目录下面。内容如下(注意加黑的部分)

    <c3p0-config>
      <!-- This app is massive! -->
      <named-config name="intergalactoApp">
        <property name="acquireIncrement">50</property>       <!--连接池在无空闲连接可用时一次性创建的新数据库连接数 -->
        <property name="initialPoolSize">100</property>           <!--连接池初始化时创建的连接数-->
        <property name="minPoolSize">50</property>               <!--连接池最少保持的可用连接数->
        <property name="maxPoolSize">1000</property>           <!--连接池最多保持的可用连接数->

          <property name="user">root</property>
          <property name="password">1213265442</property>
          <property name="driverClassName">com.mysql.jdbc.Driver</property>
          <property name="jdbcUrl">jdbc:mysql://localhost:3306/user</property>
      </named-config>
    </c3p0-config>通过source.getConnection()的方法就可以得到Connection接口对象。剩下的就是jdbc的操作了。

    通过hibernate和datasource连接

    我使用的是hibernate4.3当前稳定的最高版本。查看project/etc/hibernate.proterties文件,这个文件是hibernate所有的的配置了。

    查看可知

    hibernate支持C3P0ConnectionProvider,ProxoolConnectionProvider,DatasourceConnectionProvider,DriverManagerConnectionProvider这四种jdbc连接池

    并不包括dbcp,但是支持c3p0。下面我们来给hibernate配置C3P0.

    需要的jar包

    c3p0-0.9.2.2.jar

    mchange-commons-java-0.2.11.jar

    mysql-connector-java-5.1.40-bin.jar

    hibernate-c3p0-4.3.5.Final

    还有一些hibernate的必须包,在required文件夹下面。

    hibernate.cfg.xml配置文件中加入

    <property name="hibernate.connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property>    
    这就代表了不使用hibernate自己的连接池,而是使用我们自己的C3P0连接池   


    使用hibernate和c3p0做数据库的数据源前面都要加上“hibernate.c3p0”

    <property name="hibernate.c3p0.idle_test_period">3000</property>

    有关于jdcb的连接还是按照hibernate的jdbc连接。而有关c3p0数据源的属性配置比如启动多少个connection连接,属性前面都要加上“hibernate.c3p0”就像这样

    其他的就跟正常的hibernate配置一样了。其实我们就是把hibernate自带的数据池换成了我们自己的。其他都一样。


              

  • 相关阅读:
    Python基础学习九 数据库备份
    Python基础学习八 写日志
    Python 小练习三 发邮件
    Python基础补充(二) 多核CPU上python多线程并行的一个假象【转】
    pat 1118 Birds in Forest (25分) 并查集
    Java Map实现按value从大到小排序
    java实现排列组合(通俗易懂)
    java实现24点游戏代码
    eclipse搭建struts2环境及所遇到的问题
    java非常好用的读取文件的流的代码
  • 原文地址:https://www.cnblogs.com/HardRockVersion/p/6415549.html
Copyright © 2011-2022 走看看