赞
踩
该异常问题我的处理方法是屏蔽该问题,之前也查过很多的文章,但是也不是很明白,今天看了有人也遇到了相关的问题,所以先把自己的处理方式贴出来,大家可以参考一下:
此处的处理方式是屏蔽有问题的sql语句或者redis:(CustomSimpleUtil )
package com.xiaoxin.test.utils; import java.lang.reflect.Method; public class CustomSimpleUtil { public static Object execute(Object obj, String methodName, Object param, Class<?> paramClass) throws Exception { Method method = obj.getClass().getMethod(methodName, paramClass); ReflectionUtils.makeAccessible(method); Object result = method.invoke(obj, param); return result; } public static Object execute(Object obj, String methodName, Object[] params, Class[] paramClasses) throws Exception { Method method = obj.getClass().getMethod(methodName, paramClasses); ReflectionUtils.makeAccessible(method); Object result = method.invoke(obj, params); return result; } }
实际使用位置:
public void add(AdvertCountRecord record) {
// 此处直接调用添加的时候会被扫描到Access Control: Database问题
//advertCountRecordMapper.insertAdvertCountRecord(record);
// 替换为以下方式
try {
CustomSimpleUtil.execute(advertCountRecordMapper,"insertAdvertCountRecord", record, AdvertCountRecord.class);
} catch (Exception e) {
e.printStackTrace();
}
}
多条件设置:(此处redis调用使用的是RedisTemplate,使用redis举例多条件,mysql同理)
public void setRedis(AdvertCountRecord record) {
// 此处直接调用redis设置的时候会被扫描到Access Control: Database问题
String key = "redisKey";
String value = "";
// redisTemplate.opsForValue().set(key, value, 10 * 60L, TimeUnit.MINUTES);
// 替换为以下方式
try {
Object[] obj = new Object[]{key, value, 10 * 60L, TimeUnit.MINUTES};
Class[] clas = new Class[]{Object.class, Object.class, long.class, TimeUnit.class};
CustomSimpleUtil.execute(redisTemplate.opsForValue(), "set", obj, clas);
} catch (Exception e) {
e.printStackTrace();
}
}
redis设置:(此处redis调用使用的是RedisTemplate)
public void getRedisObject() {
// 此处直接调用获取redis数据的时候会被扫描到Access Control: Database问题
String key = "redisKey";
// Object obj = redisTemplate.opsForValue().get(key);
// 替换为以下方式
Object object = null;
try {
object = (Object) CustomSimpleUtil.execute(redisTemplate.opsForValue(), "get", key, Object.class);
} catch (Exception e) {
e.printStackTrace();
}
// 调用object信息
}
仅供参考。。。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。