自定义mybatis的拦截器+Memcached+treeNMS
一.自定义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相关推荐
- 如何使用Mybatis的拦截器实现数据加密与解密
点击蓝色"程序猿DD"关注我哟 加个"星标",不忘签到哦 转载自公众号:日拱一兵 关注我,回复口令获取可获取独家整理的学习资料: - 001 :领取<Sp ...
- Mybatis分页拦截器
这个拦截器比较复杂,是通过判断传入的参数有page对象就认定它是需要分页的. 1.首先,自定义一个分页拦截器 package com.jd.controller.interceptor;import ...
- spring boot集成swagger,自定义注解,拦截器,xss过滤,异步调用,定时任务案例...
本文介绍spring boot集成swagger,自定义注解,拦截器,xss过滤,异步调用,定时任务案例 集成swagger--对于做前后端分离的项目,后端只需要提供接口访问,swagger提供了接口 ...
- Mybatis Interceptor 拦截器原理 源码分析
Mybatis采用责任链模式,通过动态代理组织多个拦截器(插件),通过这些拦截器可以改变Mybatis的默认行为(诸如SQL重写之类的),由于插件会深入到Mybatis的核心,因此在编写自己的插件前最 ...
- 自定义注解在拦截器中为空_如何在Android中为特定联系人设置自定义铃声
自定义注解在拦截器中为空 Everyone likes to know who's calling before they actually pick up the phone, and the ea ...
- mybatis使用拦截器显示sql,使用druid配置连接信息
mybatis使用拦截器显示sql,使用druid配置连接信息 mybatis sql Druid 1.显示出sql内容: 新建2个类: MybatisInterceptor :拦截sql,并获得输出 ...
- Mybatis 通过拦截器动态修改SQL
01 使用场景 当我们在多租户的项目中,编写SQL语句都要带上tenant字段,用于区分不同的租户只能操作自己的数据. 比如,像下面的SQL select * from member where id ...
- 好用的自定义Okhttp日志拦截器
Okhttp中自带的日志拦截器 HttpLoggingInterceptor 实在是不好用,日志太多太乱,所以想要有好看.简洁的日志打印就要靠自定义了,下面分享我参照 HttpLoggingInter ...
- 一步步教你mybatis分页,mybatis分页拦截器 使用,mybatis拦截器分页
mybatis 分页详解.mybatis分页查询,mybatis分页拦截器使用.struts2下mybatis分页 mybatis默认是支持分页的,内部通过创建可滚动的Result ...
- MyBatis框架 拦截器简单使用
Interceptor 是MyBatis提供的一个插件(plugin扩展).代表拦截器,可以拦截代码中的数据库访问操作,即Statement操作 拦截后,可以去修改正在执行的SQL语句,可以额外访问数 ...
最新文章
- 导师:我不会拖延研究生正常毕业
- Centos 7 安装LAMP环境
- 硬件三人行-开关电源学习笔记-1
- 2010年11月23日学习内容总结
- 【NGN学习笔记】5 IMS技术
- postgresql建表带注释_postgresql建表带自增id和注释语句
- Singularity 介绍
- jq获取当前完整html,jquery怎样获取html的内容?
- python 默认配置文件_python各类配置文件写法
- mysql修改内置函数,Mysql常见内置函数
- 【Spring第四篇】DI注入以及c、p命名空间
- 微机接口技术实用教程(第2版)-任向民,王克朝,宗明魁-课后答案
- mysql基础6-查询数据操作
- nmake的调用方法
- USGS SWB模型
- 如何装计算机网络驱动,网卡驱动怎么安装,手把手教你电脑网卡驱动怎么安装...
- 数据库的查询、视图和游标
- vivoy85a参数配置_vivoY85A基本配置参数?
- 魅族千元新机曝光:处理器不错!
- Kafka 中的这些设计思想值得一学!
热门文章
- TokenInsight作为联盟伙伴加入CoinMarketCap的数据透明联盟(DATA) | TokenInsight
- 蓝桥杯2019年软件类省赛:真题+解答
- 银行转账java mysql_一个银行转账业务模型分析:大魏Java记5-7
- 用代码来模拟铁路售票系统,实现通过四个售票点发售某日某次列车的100张车票,一个售票点用一个线程表示
- 国二c语言程序设计技巧,计算机二级C语言考试必看技巧
- 计算机风扇维修,电脑风扇轴承磨损的简易维修方法
- QT5基础教程(介绍,下载,安装,第一个QT程序)
- RocketDock 安装
- discuz 3.1 修改浏览器顶部小图标
- lingo姜启源数学模型接力队选拔问题实现实例