当前位置:  数据库>其它
本页文章导读:
    ▪Hibernate 之 一级缓存                   本篇文章主要是总结Hibernate中关于缓存的相关内容.            先来看看什么是缓存,我们这里所说的缓存主.........
    ▪c3p0、dbcp、tomcat jdbc pool 连接池配置简介及常用数据库的driverClass和驱动包      DBCP连接池配置          <bean id="dbcpDataSource" abstract="true">              <property name="maxActive" value="100&.........
    ▪ORACLE创建用户、角色及权限管理       用户及权限管理 合理的用户和权限管理对于数据库系统的高效、安全、可靠是很关键的。ORACLE在用户及权限管理上有许多新的概念和特性。 & 说明: 对用户及权限的管理需要.........

[1]Hibernate 之 一级缓存
    来源: 互联网  发布时间: 2013-11-07

            本篇文章主要是总结Hibernate中关于缓存的相关内容.

 

         先来看看什么是缓存,我们这里所说的缓存主要是指应用程序与物流数据源之间(例如硬盘),用于存放临时数据的内存区域,这样做的目的是为了减少应用程序对物理数据源的访问次数,从而提高应用程序的性能.因为读取内存里的数据要远比读取硬盘里的数据快的多.如下图.

          上面的缓存是一个比较粗粒度的概念.缓存的机制就是增加了一个缓冲区,cpu中就有缓存的概念.接下来我们来了解一下Hibernate中的缓存运行机制.

          在 Hibernate在查询数据时,首先到缓存中去查找,如果找到就直接使用,找不到的时候就会从物理数据源中检索.如此一来,把频繁使用的数据加载到缓存区后,就可以大大减少应用程序对物理数据源的访问(IO操作),使得程序的运行性能明显的提升.

 

         在这里需要提一下缓存跟我们以前到了解的Pooling有些类似,例如数据库连接池.他们都是用来临时存放数据的,但是又有着自己各自的特点.

Pooling创建的对象是重量级.里面的东西都一样,例如Connection.

Cache里面的东西都不一样,都有状态.

 

        Hibernate中缓存有两种,一级缓存,二级缓存.本片文章我们重点来了解一级缓存.

        Hibernate的一级缓存是由Session来提供的,因为一级缓存只存在Session的生命周期中,所以当关闭Session的时候,此Session所管理的一级缓存也被立刻清除.换句话说,只要你用了Hibernate就用到了Hibernate的一级缓存.因此有时候也叫Hibernate一级缓存为Session级缓存或者事务级缓存.

        当然我们可以通过Session提供的一些方法来对一级缓存进行一个管理

    
[2]c3p0、dbcp、tomcat jdbc pool 连接池配置简介及常用数据库的driverClass和驱动包
    来源: 互联网  发布时间: 2013-11-07
DBCP连接池配置          <bean id="dbcpDataSource" abstract="true">
             <property name="maxActive" value="100" /><!-- 连接池的最大数据库连接数。设为0表示无限制。 -->
             <property name="initialSize" value="1" /><!-- 初始化连接数量 -->
             <property name="maxWait" value="60000" /><!-- 最大建立连接等待时间。如果超过此时间将接到异常。设为-1表示无限制。 -->
             <property name="maxIdle" value="100" /><!-- 最大等待连接中的数量,设 0 为没有限制 -->
             <property name="minIdle" value="3" /><!-- 最小等待连接中的数量,设 0 为没有限制 -->
             <property name="removeAbandoned" value="true" /><!--强制自我中断避免dbcp自身bug出现连接过久资源耗尽-->
             <property name="removeAbandonedTimeout" value="180" /><!--自我中断时间秒 -->

         </bean>

         <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close" parent="dbcpDataSource">
             <property name="driverClassName" value="com.mysql.jdbc.Driver" />
             <property name="url" value="jdbc:mysql://127.0.0.1:3306/text?allowMultiQueries=yes" />
             <property name="username" value="root" />

             <property name="password" value="root" />

        </bean>

关于dbcp连接池具体的使用方法还需参考:点击打开链接

dbcp jar包

commons-dbpc.jar、commons-collections.jar、commons-pool.jar 下载点击下载

c3p0连接池配置

      <bean id="c3p0DataSource"  abstract="true">               
             <property name="initialPoolSize" value="1"/>  <!--初始化时获取的连接数,取值应在minPoolSize与maxPoolSize之间。Default: 3 -->              
            <property name="minPoolSize" value="1"/> <!--连接池中保留的最小连接数。-->                       
            <property name="maxPoolSize" value="300"/>  <!--连接池中保留的最大连接数。Default: 15 -->              
           <property name="maxIdleTime" value="60"/><!--最大空闲时间,60秒内未使用则连接被丢弃。若为0则永不丢弃。Default: 0 -->                       
           <property name="acquireIncrement" value="5"/><!--当连接池中的连接耗尽的时候c3p0一次同时获取的连接数。Default: 3 -->                    
            <property name="idleConnectionTestPeriod" value="60"/>   <!--每60秒检查所有连接池中的空闲连接。Default: 0 -->     
      </bean>

       <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close" parent="c3p0DataSource">
             <property name="driverClassName" value="com.mysql.jdbc.Driver" />
             <property name="url" value="jdbc:mysql://127.0.0.1:3306/text?allowMultiQueries=yes" />
             <property name="username" value="root" />

             <property name="password" value="root" />

        </bean>

关于c3p0连接池具体的使用方法还需参考:点击打开链接

c3p0 jar包

c3p0-0.9.2.jar 下载点击下载

jdbc-pool连接池配置

        <bean id="poolDataSource"  abstract="true">

             <property name="maxActive" value="100"/>  <!-- 连接池的最大数据库连接数。设为0表示无限制。 -->
             <property name="initialSize" value="10"/>  <!-- 初始化连接数量 -->
             <property name="maxWait" value="10000"/>  <!-- 最大建立连接等待时间。如果超过此时间将接到异常。设为-1表示无限制。 -->
             <property name="removeAbandonedTimeout" value="60"/>  <!--自我中断时间秒 -->
             <property name="minEvictableIdleTimeMillis" value="30000"/>  <!--连接的超时时间,默认为半小时。-->
             <property name="minIdle" value="10"/>  <!-- 最小等待连接中的数量,设 0 为没有限制 -->
             <property name="timeBetweenEvictionRunsMillis" value="30000"/>  <!-- #运行判断连接超时任务的时间间隔,单位为毫秒,默认为-1,即不执行任务。 -->
             <property name="jmxEnabled" value="true"/>  <!-- 注册池JMX。的默认值是true。-->
             <property name="testWhileIdle" value="false"/>  <!--默认值是false,当连接池中的空闲连接是否有效 -->
             <property name="testOnBorrow" value="true"/> <!-- 默认值是true,当从连接池取连接时,验证这个连接是否有效-->
             <property name="validationInterval" value="30000"/>  <!--检查连接死活的时间间隔(单位:毫妙) 0以下的话不检查。默认是0。 -->
             <property name="testOnReturn" value="false"/>  <!--默认值是flase,当从把该连接放回到连接池的时,验证这个连接是 -->
             <property name="validationQuery" value="select 1"/>  <!--一条sql语句,用来验证数据库连接是否正常。这条语句必须是一个查询模式,并至少返回一条数据。可以为任何可以验证数据库连接是否正常的sql-->
             <property name="logAbandoned" value="true"/>  <!--是否记录中断事件, 默认为 false-->
             <property name="removeAbandoned" value=&q

    
[3]ORACLE创建用户、角色及权限管理
    来源: 互联网  发布时间: 2013-11-07



用户及权限管理

合理的用户和权限管理对于数据库系统的高效、安全、可靠是很关键的。ORACLE在用户及权限管理上有许多新的概念和特性。

& 说明:

对用户及权限的管理需要进入SQL*Plus交互工具。每一个SQL语句后要以分号“;”结束。退出交互工具命令为:quit

SQL命令语句及可选项不区分大小写,本文中出现大写的地方是强调作用。

的用户管理

每个ORACLE数据库都有许多合法用户,这些用户可以根据用户名和口令登录数据库,并使用SQL语言存取数据。

1) 创建用户


创建用户命令格式

说 明

create user 用户名;

创建用户的操作必须由DBA来做,一般用户无权创建用户。用户名必须是唯一的,即同一数据库中不能有两个相同的用户。

identified by 口令;

为用户设置口令

default tablespace 表空间名;

表示该用户存放数据的缺省表空间

temporary tablespace 表空间名;

表明用户使用的缺省临时表空间名

quota 大小 on 表空间名;

quota 可以限制用户在某个表空间上最多可使用多少字节

profile 资源文件;

profile 为用户指定各种资源的使用


下面是一个创建用户的完整例子:
create user scott;

identified by tiger;

default tablespace data_ts;

temporary tablespace temp_ts;

quota 500K on data_ts;

profile newprofile;

(1) 修改用户
对用户的修改包括:口令字、缺省表空间、临时表空间、表空间限量、profile、缺省角色。角色是ORACLE7的一个新概念,我们在“权限管理”里再讨论。在这里可把角色看成具有某些权限的一个特殊用户。修改用户的缺省角色也就是为用户指明另一个权限的集合。下面举例说明修改用户的操作:
任 务

命 令

将scott的口令改为hello

ALTER USER scott IDENTIFIED BY hello;

将scott的缺省表空间改为data2_ts

ALTER USER scott DEFAULT TABLESPACE data2_ts;

将scott的临时表空间修改为temp2_ts

ALTER U
    
最新技术文章:
 




特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3