mybatis插件和pagehelper

实现Interceptor接口:

    

public Object plugin(Object target) {
		
		System.out.println("first Intercept.....plugin"+target);
		Object wrap=Plugin.wrap(target, this);
		
		
		return wrap;
	}

	@Override
	public Object intercept(Invocation invocation) throws Throwable {
		// TODO Auto-generated method stub
		System.out.println("first Intercept"+invocation.getMethod());
		
		
		Object proceed = invocation.proceed();
		return proceed;
	}

	@Override
	public void setProperties(Properties properties) {
		// TODO Auto-generated method stub
		System.out.println("插件配置信息"+properties); 
	}

在mybatis.xml中配置插件信息:

<configuration>

	
	<plugins>
		<plugin interceptor="com.uban.mybatis.test.TestPlugin">
			<property name="username" value="root"/>
		</plugin>
	</plugins>

执行程序后,sql的信息会被拦截下来:

插件配置信息{username=root}
first Intercept.....pluginorg.apache.ibatis.executor.CachingExecutor@2ea227af
first Intercept.....pluginorg.apache.ibatis.scripting.defaults.DefaultParameterHandler@17046283
first Intercept.....pluginorg.apache.ibatis.executor.resultset.DefaultResultSetHandler@6e4784bc
first Intercept.....pluginorg.apache.ibatis.executor.statement.RoutingStatementHandler@e056f20
DEBUG 03-08 14:33:27,577 ==>  Preparing: select * from employee where id=?
public Object intercept(Invocation invocation) throws Throwable {
		// TODO Auto-generated method stub
		System.out.println("first Intercept"+invocation.getMethod());
		Object target = invocation.getTarget();
		
		
		MetaObject metaObject = SystemMetaObject.forObject(target);
		
		Object value = metaObject.getValue("parameterHandler.parameterObject");
		metaObject.setValue("parameterHandler.parameterObject", 3);
		
		System.out.println("sql参数"+value);
		
		Object proceed = invocation.proceed();
		return proceed;
	}

更改sql的参数:


参数被修改,返回值改变


pagehelper分页插件:

    在mybatis.xml中配置:

    

<plugins>
		
		
		<plugin interceptor="com.github.pagehelper.PageInterceptor">  
	     	
	     </plugin>
                 
            
        
	</plugins>

调用时,只需要加入PageHelper.startPage(1,2); 就可以了

public void test00() throws IOException {
		
		
		SqlSession opensession=getSqlSessionFactory().openSession();
		
		EmployeeMapperPlus mapper=opensession.getMapper(EmployeeMapperPlus.class);
		Page<Object> page = PageHelper.startPage(1,2);
		List<Employee> employee=mapper.getEmps();
		   
		for(Employee e:employee) {
			System.out.println(e);
		}
		System.out.println(page.getPageNum()+""+page.getTotal()+""+page.getPageSize());
		
		opensession.close();
	}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值