zoukankan      html  css  js  c++  java
  • Mybatis3

    mybatis整合ehcache

     分布缓存:

    我们系统为了提高系统并发,性能、一般对系统进行分布式部署(集群部署方式)

    高并发环境下,大量的读写请求涌向数据库,磁盘的处理速度与内存显然不在一个量级,从减轻数据库的压力和提高系统响应速度两个角度来考虑,一般都会在数据库之前加一层缓存。由于单台机器的内存资源以及承载能力有限,并且,如果大量使用本地缓存,也会使相同的数据被不同的节点存储多份,对内存资源造成较大的浪费,因此,才催生出了分布式缓存。

    Memcache

    memcache是一款开源的高性能的分布式内存对象缓存系统,用于在应用中减少对数据库的访问,提高应用的访问速度,并降低数据库的负载。为了在内存中提供数据的高速查找能力,memcache使用key-value的形式存储和访问数据,在内存中维护一张巨大的HashTable,使得对数据查询的时间复杂度降低到O(1),保证了对数据的高性能访问。内存的空间总是有限的,当内存没有更多的空间来存储新的数据时,memcache就会使用LRU(LeastRecently Used最近最久未使用)算法,将最近不常访问的数据淘汰掉,以腾出空间来存放新的数据。

    memcache存储支持的数据格式也是灵活多样的,通过对象的序列化机制,可以将更高层抽象的对象转换成为二进制数据,存储在缓存服务器中,当前端应用需要时,又可以通过二进制内容反序列化,将数据还原成原有对象。

    整合方法

    mybatis提供了一个cache接口,如果要实现自己的缓存逻辑,实现cache接口开发即可。

    mybatisehcache整合,mybatisehcache整合包中提供了一个cache接口的实现类。

     

    mybatis默认实现cache类是:

    配置mappercache中的typeehcachecache接口的实现类型。

    加入ehcache的配置文件

    classpath下配置ehcache.xml

     springmybatis整合

    需要spring通过单例方式管理SqlSessionFactory

    springmybatis整合生成代理对象,使用SqlSessionFactory创建SqlSession。(springmybatis整合自动完成)

    持久层的mapper都需要由spring进行管理。

     sqlSessionFactory

    applicationContext.xml配置sqlSessionFactory和数据源

    sqlSessionFactorymybatisspring的整合包下。

    <!-- 加载配置文件 -->

    <context:property-placeholder location="classpath:db.properties" />

    <!-- 数据源,使用dbcp -->

    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"

    destroy-method="close">

    <property name="driverClassName" value="${jdbc.driver}" />

    <property name="url" value="${jdbc.url}" />

    <property name="username" value="${jdbc.username}" />

    <property name="password" value="${jdbc.password}" />

    <property name="maxActive" value="10" />

    <property name="maxIdle" value="5" />

    </bean>

    <!-- sqlSessinFactory -->

    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">

    <!-- 加载mybatis的配置文件 -->

    <property name="configLocation" value="mybatis/SqlMapConfig.xml" />

    <!-- 数据源 -->

    <property name="dataSource" ref="dataSource" />

    </bean>

    原始dao开发(和spring整合后)

     User.xml

     SqlMapconfig.xml中加载User.xml

     

    dao(实现类继承SqlSessionDaoSupport)

     

    dao接口实现类需要注入SqlSessoinFactory,通过spring进行注入。

    这里spring声明配置方式,配置daobean

    UserDaoImpl实现类继承SqlSessionDaoSupport

     

    配置dao

    applicationContext.xml中配置dao

     测试程序

    mapper代理开发

    通过MapperScannerConfigurer进行mapper扫描

    测试代码

  • 相关阅读:
    OCI读取单条记录(C)
    共享内存shmget shmat shmdt
    Linux系统下的多线程编程入门
    如何让errno多线程/进程安
    linux的mount(挂载)命令详解
    取得系统时间并以BCD形式保存到字符串中
    电脑上的搜索功能用不了了,怎么办?
    如何建立Linux下的ARM交叉编译环境
    C#网络编程之Http请求
    深入了解Oracle前滚恢复rolling forward(一)
  • 原文地址:https://www.cnblogs.com/jingyukeng/p/10274211.html
Copyright © 2011-2022 走看看