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扫描

测试代码

 

posted @ 2019-01-15 20:45  坑神欲哭无泪  阅读(619)  评论(0编辑  收藏  举报