一.自定义mybatis拦截器

第一步:实现Interceptor接口

public interface Interceptor {//拦截之后需要执行的方法
Object intercept(Invocation invocation) throws Throwable;
//返回代理对象
Object plugin(Object target);
//设置拦截器 运行的一些参数
void setProperties(Properties properties);
}
     package com.oracle.util;import org.apache.ibatis.executor.statement.StatementHandler;import org.apache.ibatis.plugin.*;import org.apache.ibatis.reflection.MetaObject;import org.apache.ibatis.reflection.SystemMetaObject;import java.sql.Connection;import java.sql.Statement;import java.util.Properties;//MybatisInterceptor类会拦截 mybatis执行过程中给的sql语句//前提是需要将 MybatisInterceptor 注册为一个拦截器【mybatis-config.xml中配置】@Intercepts({@Signature(type = StatementHandler.class, method = "prepare", args ={Connection.class, Integer.class})})public class MybatisInterceptor implements Interceptor {@Overridepublic Object intercept(Invocation invocation) throws Throwable {StatementHandler sh = (StatementHandler) invocation.getTarget();MetaObject mo = SystemMetaObject.forObject(sh);//获得了运算后的sqlObject value = mo.getValue("delegate.boundSql.sql");System.out.println("OracleSqlInteceptor-->>" + value);return invocation.proceed();}@Overridepublic Object plugin(Object target) {return Plugin.wrap(target,this);}
@Override
public void setProperties(Properties properties) {}
}

配置拦截器

<!--配置mybatis的插件-->
<plugins>
<!-- com.github.pagehelper为PageHelper类所在包名 -->
<!--此类可以动态拦截运行的sql,并且修改sql,进行拦截后的分页增强-->
<!-- <plugin interceptor="com.github.pagehelper.PageInterceptor">
</plugin>-->
<plugin interceptor="com.oracle.util.MybatisInterceptor"></plugin>
</plugins>

测试,随意测试Mapper中的方法,在控制台中均可以查看到 mybatis运行过程中的sql语句

OracleSqlInteceptor-->>select
goods.gid as goods_gid, goods.gname as goods_gname, goods.gcount as
goods_gcount,
goods.gprice as goods_gprice, goods.gdes as goods_gdes
from goods

这些sql语句你就可以更改,已达到自己的需求。

二.Memcached

安装

首先下载Win下的Memcached,解压到指定目录。

​ memcached.exe -d install 安装memcached服务

​ 然后通过Memcached start memcached就启动了。

常用命令:

​ -p 监听的端口
​ -l 连接的IP地址, 默认是本机
​ -d start 启动memcached服务
​ -d restart 重起memcached服务
​ -d stop|shutdown 关闭正在运行的memcached服务
​ -d install 安装memcached服务
​ -d uninstall 卸载memcached服务
​ -u 以的身份运行 (仅在以root运行的时候有效)
​ -m 最大内存使用,单位MB。默认64MB
​ -M 内存耗尽时返回错误,而不是删除项
​ -c 最大同时连接数,默认是1024
​ -f 块大小增长因子,默认是1.25
​ -n 最小分配空间,key+value+flags默认是48
​ -h 显示帮助

xmemcached 客户端简单代码示意

public static void main(String[] args) {MemcachedClientBuilder builder = new XMemcachedClientBuilder(AddrUtil.getAddresses("127.0.0.1:11211"));MemcachedClient memcachedClient;try {memcachedClient = builder.build();//第二个参数为存活时间,0 是不过期,单位为 秒memcachedClient.set("hello", 10, "Hello,xmemcached");String value = memcachedClient.get("hello");System.out.println("hello=" + value);memcachedClient.delete("hello");value = memcachedClient.get("hello");System.out.println("hello=" + value);// close memcached clientmemcachedClient.shutdown();} catch (Exception e) {System.err.println("MemcachedClient operation fail");e.printStackTrace();}}

三.treeNMS

说明:1、将压缩文件解压.2、双击 bin\startup.bat,运行Tomcat3、打开浏览器,输入http://127.0.0.1:8086/treenms4、默认用户名:treesoft,密码:treesoft ,用户:admin,密码:treesoft5、登录后,点击右上角“参数配置”按钮,新增或修改连接参数,测试连接成功后,保存参数并刷新页面即可。6、程序文件中已包括windows版本的JDK1.7, tomcat7.0, 以及treenms项目。7、treeNMS-x.x.x\webapps\treenms目录内容为编译后的项目,可以直接复制出来,发布到Linux服务器上。Linux服务器的Tomcat,JDK请自行安装。MAC系统请安装相应版本JDK8、点击左侧数据仓库,将在主页面展示数据列表信息。9、本系统支持多个redis,memcached数据库并存,方便集群管理。10、本系统支持windows, linux ,mac等操作系统。11、本系统支持PC端,平板端,手机端登录使用。12、未购买授权,本公司不承担因使用不当造成的任何经济损失!13、布署后建议将项目名treenms修改掉,防止破解渗透入侵。功能:TreeNMS数据库管理系统使用JAVA开发,采用稳定通用的springMVC +JDBC架构,
实现基于WEB方式对 Redis,Memcache 缓存数据库进行维护管理操作。功能包括:系统的状态实时监控,数据库的展示,库表的展示,缓存数据的展示,查询,新增,修改,删除等,数据的在线编辑维护,
数据的备份还原 ,实时状态监控展示,JSON数据格式化,SQL语法帮助,在线数据源选择配置等。系统内置14套UI皮肤,使用中可以依个人喜好选择配色方案。本系统不但稳定,实用,功能强大,交互友好,而且介面美观,可自由选择皮肤配色,推荐大家使用!

常见问题


常见问题:1、报错信息:取NoSQL数据出错:ERR SELECT is not allowed in cluster mode问题原因:redis集群版只使用db0,select命令虽然能够支持select 0。其他的db都会返回错误,属于正常现象。2、登录页中的验证码 ,显示乱码,无法识别,是由于部分Linux操作系统缺少Arial字体导致的,请安装即可。  解决方法:把window上的该字体上传到{JAVA_HOME}/jre/lib/fonts下重启tomcat即可3、登录页,验证码不显示,问题原因:是因为linux jvm没有启用图形工具报错 Can't connect to X11 window server using ':0.0' as the value of the DISPLAY variable. 解决办法JAVA_OPTS=-Djava.awt.headless=true tomcat 的 catalina.sh 加上这段话:echo "Using CATALINA_BASE:   $CATALINA_BASE" echo "Using CATALINA_HOME:   $CATALINA_HOME" echo "Using CATALINA_TMPDIR: $CATALINA_TMPDIR" echo "Using RUNJAVA:       $_RUNJAVA" echo "Using JAVA_OPTS:  $JAVA_OPTS" 4、部分用户使用TreeNMS,发现数据显示乱码问题原因:由于用户程序写入的数据进行序列化,或加密后写入造成的。解决方法:这个属于正常现象,用户可以自行明文新增一行数据对比一下。5、Tomcat8.5.11以上的高版本会出现CSS样式加载失效的情况,导致页面异常,请使用8.5.11及以下版本。

自定义mybatis的拦截器+Memcached+treeNMS相关推荐

  1. 如何使用Mybatis的拦截器实现数据加密与解密

    点击蓝色"程序猿DD"关注我哟 加个"星标",不忘签到哦 转载自公众号:日拱一兵 关注我,回复口令获取可获取独家整理的学习资料: - 001 :领取<Sp ...

  2. Mybatis分页拦截器

    这个拦截器比较复杂,是通过判断传入的参数有page对象就认定它是需要分页的. 1.首先,自定义一个分页拦截器 package com.jd.controller.interceptor;import ...

  3. spring boot集成swagger,自定义注解,拦截器,xss过滤,异步调用,定时任务案例...

    本文介绍spring boot集成swagger,自定义注解,拦截器,xss过滤,异步调用,定时任务案例 集成swagger--对于做前后端分离的项目,后端只需要提供接口访问,swagger提供了接口 ...

  4. Mybatis Interceptor 拦截器原理 源码分析

    Mybatis采用责任链模式,通过动态代理组织多个拦截器(插件),通过这些拦截器可以改变Mybatis的默认行为(诸如SQL重写之类的),由于插件会深入到Mybatis的核心,因此在编写自己的插件前最 ...

  5. 自定义注解在拦截器中为空_如何在Android中为特定联系人设置自定义铃声

    自定义注解在拦截器中为空 Everyone likes to know who's calling before they actually pick up the phone, and the ea ...

  6. mybatis使用拦截器显示sql,使用druid配置连接信息

    mybatis使用拦截器显示sql,使用druid配置连接信息 mybatis sql Druid 1.显示出sql内容: 新建2个类: MybatisInterceptor :拦截sql,并获得输出 ...

  7. Mybatis 通过拦截器动态修改SQL

    01 使用场景 当我们在多租户的项目中,编写SQL语句都要带上tenant字段,用于区分不同的租户只能操作自己的数据. 比如,像下面的SQL select * from member where id ...

  8. 好用的自定义Okhttp日志拦截器

    Okhttp中自带的日志拦截器 HttpLoggingInterceptor 实在是不好用,日志太多太乱,所以想要有好看.简洁的日志打印就要靠自定义了,下面分享我参照 HttpLoggingInter ...

  9. 一步步教你mybatis分页,mybatis分页拦截器 使用,mybatis拦截器分页

              mybatis 分页详解.mybatis分页查询,mybatis分页拦截器使用.struts2下mybatis分页 mybatis默认是支持分页的,内部通过创建可滚动的Result ...

  10. MyBatis框架 拦截器简单使用

    Interceptor 是MyBatis提供的一个插件(plugin扩展).代表拦截器,可以拦截代码中的数据库访问操作,即Statement操作 拦截后,可以去修改正在执行的SQL语句,可以额外访问数 ...

最新文章

  1. 导师:我不会拖延研究生正常毕业
  2. Centos 7 安装LAMP环境
  3. 硬件三人行-开关电源学习笔记-1
  4. 2010年11月23日学习内容总结
  5. 【NGN学习笔记】5 IMS技术
  6. postgresql建表带注释_postgresql建表带自增id和注释语句
  7. Singularity 介绍
  8. jq获取当前完整html,jquery怎样获取html的内容?
  9. python 默认配置文件_python各类配置文件写法
  10. mysql修改内置函数,Mysql常见内置函数
  11. 【Spring第四篇】DI注入以及c、p命名空间
  12. 微机接口技术实用教程(第2版)-任向民,王克朝,宗明魁-课后答案
  13. mysql基础6-查询数据操作
  14. nmake的调用方法
  15. USGS SWB模型
  16. 如何装计算机网络驱动,网卡驱动怎么安装,手把手教你电脑网卡驱动怎么安装...
  17. 数据库的查询、视图和游标
  18. vivoy85a参数配置_vivoY85A基本配置参数?
  19. 魅族千元新机曝光:处理器不错!
  20. Kafka 中的这些设计思想值得一学!

热门文章

  1. TokenInsight作为联盟伙伴加入CoinMarketCap的数据透明联盟(DATA) | TokenInsight
  2. 蓝桥杯2019年软件类省赛:真题+解答
  3. 银行转账java mysql_一个银行转账业务模型分析:大魏Java记5-7
  4. 用代码来模拟铁路售票系统,实现通过四个售票点发售某日某次列车的100张车票,一个售票点用一个线程表示
  5. 国二c语言程序设计技巧,计算机二级C语言考试必看技巧
  6. 计算机风扇维修,电脑风扇轴承磨损的简易维修方法
  7. QT5基础教程(介绍,下载,安装,第一个QT程序)
  8. RocketDock 安装
  9. discuz 3.1 修改浏览器顶部小图标
  10. lingo姜启源数学模型接力队选拔问题实现实例