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

阅读更多

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

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

1,配置好工厂

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

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

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

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

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

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

 

 

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

 

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

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

 

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

 

 

 

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

@Service(value = "redisService")

public class RedisServiceImpl implements RedisService {

 

@Autowired

private  RedisDao 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 implements RedisDao

{

    @Autowired

    private RedisTemplate jedisTemplate;

 

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

    

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

    {

        try

        {

            ValueOperations 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 getfordMenuLimt(Map param) {

// TODO Auto-generated method stub

List map = new ArrayList<>();

map= (List) opmMenufolderMapper.getfordMenuLimt(param);

return map;

}

 

 

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

 

   

     

       

         

           dialect=oracle

            reasonable=true

            offsetAsPageNum=true

         

       

     

   

 

 

 

 

 

@Autowired

public ESteelSqlSessionTemplate sqlSessionTemplate;

 

@Override

public List spsxPartKeycdpzzzMap() {

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

}

 

 

 

 

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

 

 

 

 

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

 

       

         

       

       

       

       

                classpath:config_mybatis/**/*.xml

           

      

       

           

             

                   

                       

                            dialect=oracle

                            reasonable=true

                       

                     

                 

               

           

         

   

 

 //通用mapper直接根据sqlSession这个名字自动装配sqlSession,直接通过mapper用

       

       

       

   

 

@Override

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

public List getMenuItems(OpmMenuitem item) {

// TODO Auto-generated method stub

return opmMenuitemMapper.select(item);

}

 

 

你可能感兴趣的:(mybatis,redis)