`
y806839048
  • 浏览: 1120678 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

与不同框架整合时mybatis的使用区别 (对比redis)

阅读更多

与不同框架整合时mybatis的使用区别 (对比redis)

一般mybatis或者redis等连接数据库的框架应用规则都差不多:

1,配置好工厂

2,工厂注入模版配置好模版(这时候其实已经可以直接通过这个模版操作了)

3,如果spring提供了人性话的封装这个模版的类,或其他框架可以人性化整合这个模版,就可以更方便的使用,不用每次都获取模版然后操作

  比如1,没有用封装的模版(就直接用模版)

      2,有框架对其封装了就用封装后的操作入口即可,更方便:

      用spring封装了模版(配置的时候将模版注入spring的一个类),或者spring集成的比如mapper,这个mapper会自动识别id=sqlSession的模版,

      那么也就有了封装,就不必每次使用模版操作了,直接用mapper提供的人性化的操作入口即可

 

 

<!-- 消除Redis的key前面的/xac/xed/x00/x05t/x00/t这些东西 -->

<bean id="stringRedisSerializer"

class="org.springframework.data.redis.serializer.StringRedisSerializer" />

 

<bean id="jedisTemplate" class="org.springframework.data.redis.core.RedisTemplate"

p:keySerializer-ref="stringRedisSerializer" p:hashKeySerializer-ref="stringRedisSerializer"

p:connection-factory-ref="jedisConnectionFactory" />//已经可以模版操作(Java硬编码)

 

<!-- redis缓存管理器 -->

<bean id="cacheManager" class="org.springframework.data.redis.cache.RedisCacheManager"

c:template-ref="jedisTemplate" />/////spring封装了这个模版之后就可以直接通过注解使用了

<!-- redis结束 -->

 

 

 

///(Java硬编码)(模版操作)

@Service(value = "redisService")

public class RedisServiceImpl<T> implements RedisService<T> {

 

@Autowired

private  RedisDao<T> redisDaoString;

 

/* set缓存操作 */

@Override

public void setObject(String key, T value) throws EsteelException {

redisDaoString.setObject(key, value);

System.out.println("====Set Redis " + key + "====");

}

}

 

 

public class RedisDaoImpl<T> implements RedisDao<T>

{

    @Autowired

    private RedisTemplate<String, T> jedisTemplate;

 

    private static LoggerAdapter log = LoggerAdapterFacory.getLoggerAdapter(RedisDaoImpl.class);

    

    public void setObject(String key, T value) throws EsteelException

    {

        try

        {

            ValueOperations<String, T> vps = jedisTemplate.opsForValue();

            vps.set(key, value);

          

        }

        catch (Exception ex)

        {

            String msg = "插入redis key:" + key + " value:" + value + "失败!";

            log.error(msg, ex);

            throw new EsteelException(msg, ex);

        }

        

    }

    }

    

 

//由于还用了spring封装所以还可以最直标签(封装)

@Override

@Cacheable(value="getfordMenuLimt",key="'getfordMenuLimt='+#param.get('pId')")

public List<Map> getfordMenuLimt(Map<String,Object> param) {

// TODO Auto-generated method stub

List<Map> map = new ArrayList<>();

map= (List<Map>) opmMenufolderMapper.getfordMenuLimt(param);

return map;

}

 

 

===================模版操作

 

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean" p:dataSource-ref="dataSource">

<property name="configLocation" value="classpath:mybatis-config.xml"></property>

<property name="plugins">

   <array>

     <bean class="com.github.pagehelper.PageHelper">

       <property name="properties">

         <value>

           dialect=oracle

            reasonable=true

            offsetAsPageNum=true

         </value>

       </property>

     </bean>

   </array>

 </property>

</bean>

<bean id="sqlSessionTemplate" class="com.esteel.web.utils.ESteelSqlSessionTemplate" c:sqlSessionFactory-ref="sqlSessionFactory"></bean>

 

 

 

 

@Autowired

public ESteelSqlSessionTemplate sqlSessionTemplate;

 

@Override

public List<BasSpsxValueBeanVo> spsxPartKeycdpzzzMap() {

return sqlSessionTemplate.selectList("basSpsxValue.spsxPartKeycdpzzzMap");

}

 

 

 

 

=========================================

 

 

 

 

//spring集成通用mapper,通用mapper封装的mybatis(自动通过id="sqlSession"进行封装),那么也可以不用每次通过模版操作数据库,直接用mapper的人性化接口即可(封装)

 

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

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

        <property name="typeAliasesPackage" value="com.esteel.*.bean"/> 

        <!-- typeAliasesPackage 为这个包下面的所有类生成别名,在配置文件中就可以直接用类名进行引用,而不用写全路径 -->

        <!-- <property name="typeAliasesPackage" value="com.esteel.system.bean,com.esteel.search" />

        <property name="mapperLocations" value="classpath:config_mybatis/*.xml" /> -->

        <property name="configLocation" value="classpath:config_spring/mybatis-config.xml" />

        <!-- 自动扫描entity目录, 省掉Configuration.xml里的手工配置 -->

<property name="mapperLocations"  >

<array>

                <value> classpath:config_mybatis/**/*.xml</value>

            </array>

</property>

      

        <property name="plugins">

            <array>

              <bean class="com.github.pagehelper.PageHelper">

                    <property name="properties">

                        <value>

                            dialect=oracle

                            reasonable=true

                        </value>

                    </property> 

                </bean> 

               <!--  <bean class="com.github.abel533.mapperhelper.MapperInterceptor">

                    <property name="properties">

                        <value>

                            mappers=com.github.abel533.mapper.Mapper

                            ORDER=BEFORE

                           

                        </value>

                    </property>

                </bean> -->

            </array>

        </property> 

    </bean>

 

 <bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate" scope="prototype">//通用mapper直接根据sqlSession这个名字自动装配sqlSession,直接通过mapper用

        <constructor-arg index="0" ref="sqlSessionFactory" />

        <!-- 如果想要进行批量操作可加入这个属性 -->

        <!-- <constructor-arg index="1" value="BATCH" /> -->

    </bean>

 

@Override

@Cacheable(value="getMenuItems",key="'menufolderid='+#item.menufolderid")

public List<OpmMenuitem> getMenuItems(OpmMenuitem item) {

// TODO Auto-generated method stub

return opmMenuitemMapper.select(item);

}

 

 

分享到:
评论

相关推荐

    SpringBoot企业级开发教程-教学大纲.doc

    * 知识点:Spring Boot 数据访问概述、基础环境搭建、使用注解的方式整合 MyBatis、使用配置文件的方式整合 MyBatis、Spring Data JPA 介绍、使用 Spring Boot 整合 JPA、Redis 介绍、使用 Spring Boot 整合 Redis ...

    SpringBoot微服务架构应用视频

    6. **Redis单机版与集群版的区别与配置**:对比分析Redis单机版和集群版的优缺点,讲解如何搭建Redis集群,配置哨兵系统(Sentinel)以实现高可用性。 7. **JD案例**:这个部分可能涉及如何利用SpringBoot和Redis解决...

    SecondKill:基于SSH、Redis、RabbitMQ的商品秒杀系统

    使用框架: Spring Boot + Spring + SpringMVC + Mybatis + Redis + RabbitMQ 具体内容: 有四种解决方案来做对比 1.利用MySQL的update行锁实现悲观锁。 2.MySQL加字段version实现乐观锁。 3.基于AtomicInteger的CAS...

    基于SSM的高校运动会管理系统源码.zip

    【标题与描述解析】 标题"基于SSM的高校运动会管理系统源码.zip"表明这是...同时,它也提供了改进和扩展的可能性,比如引入Spring Boot简化部署,使用React或Vue等前端框架提升用户体验,或是通过Redis缓存优化性能。

    1000道 互联网大厂面试题.pdf

    - 与Spring、SpringMVC等框架整合良好。 3. **MyBatis缺点**: - 对动态SQL的支持没有Hibernate等ORM框架强大。 - 由于没有代码生成器,所以开发工作量大。 4. **适用场合**:适合于需要进行SQL优化和定制化SQL...

    SSM个人博客项目

    通过这个个人博客项目,新手可以全面了解SSM框架的整合与应用,学习如何进行数据库设计、前后端交互、安全控制等Web开发中的关键技能。这是一个绝佳的实践平台,能够帮助开发者从理论走向实践,提升自身的技术能力。

    基于SSM的员工工资管理系统源码.zip

    SSM框架是Java Web开发中常用的一种整合框架,它是由Spring、Spring MVC和MyBatis三个开源框架组成的。本系统“基于SSM的员工工资管理系统”正是利用了这些技术来实现对员工工资数据的有效管理和操作。 1. **Spring...

    基于ssm建筑装修图纸管理平台.zip

    MyBatis则作为持久层框架,实现SQL与Java对象的映射,简化数据库操作。 2. **系统架构** 该平台采用微服务架构,每个功能模块独立部署,提高了系统的可扩展性和维护性。同时,结合微信小程序,实现了移动端的图纸...

    尚硅谷2018最新SpringBoot 上下 核心技术和整合,SpringCloud教学视频

    3. **数据访问**:探讨了如何使用Spring Boot与数据库进行交互,如JDBC、MyBatis、Hibernate等ORM框架的集成与应用。 4. **配置管理**:解析了Spring Boot的外部化配置,包括application.properties和YAML格式的配置...

    重构代码参考文档

    - ORM框架更换:从Hibernate切换到MyBatis,原因是Hibernate虽然自动化程度高,但在灵活性和性能方面不如MyBatis。通过测试对比,MyBatis在性能上有优势,且团队成员对Hibernate不熟悉。 3. **实施步骤**: - ...

    java面试题,面试必备知识

    - **NoSQL**:了解MongoDB、Redis等NoSQL数据库,对比分析与关系型数据库的区别。 3. **框架**: - **Spring框架**:理解依赖注入(DI)和面向切面编程(AOP),熟悉Spring Boot、Spring Cloud的应用。 - **MyBatis*...

    Jfinal使用心得以及架构

    - **分层架构**: 在大型项目中,JFinal 可以与其他技术结合,例如采用 Service 层实现业务逻辑,DAO 层进行数据访问,使用 MyBatis 或 Hibernate 作为持久层框架。 - **RESTful API 设计**: 利用 JFinal 的注解...

    jboot-master.zip

    5. ORM支持:整合Mybatis,简化数据库操作。 二、Jboot与SpringBoot对比 虽然Jboot与SpringBoot同为微服务框架,但它们各有侧重。SpringBoot以其全面的生态和强大的社区支持受到广泛青睐,而Jboot则在性能和易用性...

    springboot453工资信息管理系统--论文pf.zip

    5. 报表统计:生成各类工资报表,如个人工资单、部门工资汇总、年度薪资对比等。 四、SpringBoot在系统中的应用 1. 数据访问层(DAO):使用Spring Data JPA进行数据库操作,提供简洁的API,减少代码量。 2. 服务层...

    基于Java的广告推荐系统设计与实现

    2. **丰富的库和框架**:Spring、MyBatis、Apache Flink等开源框架为系统开发提供了强大支持。 3. **稳定性和安全性**:Java的垃圾回收机制和严格的类型检查保证了系统的稳定性和安全性。 4. **并发处理能力**:Java...

    一个基于Springboot的内容管理系统(CMS).zip

    4. 缓存技术:使用Redis或Hazelcast进行缓存,提升系统性能。 5. 日志管理:使用Logback或Log4j记录系统日志,便于问题排查。 6. 邮件服务:整合JavaMailSender发送邮件通知。 总结,基于Springboot的内容管理系统...

    springboot淮北市旅游 (源码+数据库)061533

    然后通过对比分析法对同类APP进行全面分析,通过整理各同类产品的界面设计版式、颜色、图标的使用等进行总结,对本设计的研究有借鉴意义。最后通过实地调查法对淮北市进行实地考察,根据地方特色开发趣味性功能,利用...

Global site tag (gtag.js) - Google Analytics