一.自定义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 {
@Override
public Object intercept(Invocation invocation) throws Throwable {
StatementHandler sh = (StatementHandler) invocation.getTarget();
MetaObject mo = SystemMetaObject.forObject(sh);
//获得了运算后的sql
Object value = mo.getValue("delegate.boundSql.sql");
System.out.println("OracleSqlInteceptor-->>" + value);
return invocation.proceed();
}
@Override
public 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 client
memcachedClient.shutdown();
} catch (Exception e) {
System.err.println("MemcachedClient operation fail");
e.printStackTrace();
}
}
三.treeNMS
说明:
1、将压缩文件解压.
2、双击 bin\startup.bat,运行Tomcat
3、打开浏览器,输入http://127.0.0.1:8086/treenms
4、默认用户名:treesoft,密码:treesoft ,用户:admin,密码:treesoft
5、登录后,点击右上角“参数配置”按钮,新增或修改连接参数,测试连接成功后,保存参数并刷新页面即可。
6、程序文件中已包括windows版本的JDK1.7, tomcat7.0, 以及treenms项目。
7、treeNMS-x.x.x\webapps\treenms目录内容为编译后的项目,可以直接复制出来,发布到Linux服务器上。
Linux服务器的Tomcat,JDK请自行安装。MAC系统请安装相应版本JDK
8、点击左侧数据仓库,将在主页面展示数据列表信息。
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及以下版本。