- 浏览: 28062 次
- 性别:
- 来自: 厦门
最新评论
我这里只是拿了当前的sql语句,可以对它进行操作,然后可以将操作过后的sql语句反射回BoundSql。
就可以做分页或者其他功能,就不需要在映射文件写了。
通过
http://blog.csdn.net/hfmbook/article/details/41985853
这个大佬写的来学习的,写的很详细的
以下是代码
TestPlugin.java
spring-mybatis.xml
mybatis-configuration.xml
就可以做分页或者其他功能,就不需要在映射文件写了。
通过
http://blog.csdn.net/hfmbook/article/details/41985853
这个大佬写的来学习的,写的很详细的
以下是代码
TestPlugin.java
package com.hgf.ssm.util; import org.apache.ibatis.executor.statement.RoutingStatementHandler; import org.apache.ibatis.executor.statement.StatementHandler; import org.apache.ibatis.mapping.BoundSql; import org.apache.ibatis.plugin.*; import java.lang.reflect.Field; import java.sql.Connection; import java.util.Properties; /** * Created by hasee on 2017/1/22. * 测试MyBatis插件,功能其实感觉就是过滤器 */ @Intercepts({ @Signature(type = StatementHandler.class, method = "prepare", args = { Connection.class }) }) public class TestPlugin implements Interceptor { @Override public Object intercept(Invocation invocation) throws Throwable { System.out.println("intercept"); //获取RoutingStatementHandler对象 RoutingStatementHandler statementHandler = (RoutingStatementHandler)invocation.getTarget(); //通过反射得到delegate的filed类 Field field = statementHandler.getClass().getDeclaredField("delegate"); Object value = null; //判断field是否需要进行java语言访问检查,参考 https://my.oschina.net/nixi0608/blog/724343 if (field.isAccessible()) { value = field.get(statementHandler); } else { field.setAccessible(true); value = field.get(statementHandler); field.setAccessible(false); } StatementHandler delegate = (StatementHandler)value; BoundSql boundSql = delegate.getBoundSql(); //获取当前sql语句 String sql = boundSql.getSql(); System.out.println(sql); return invocation.proceed(); } @Override public Object plugin(Object o) { System.out.println("plugin"); if (o instanceof StatementHandler) { return Plugin.wrap(o, this); } else { return o; } } @Override public void setProperties(Properties properties) { } }
spring-mybatis.xml
<!-- spring和MyBatis完美整合,不需要mybatis的配置映射文件 --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean" > <property name="dataSource" ref="dataSource" /> <!-- 自动扫描mapping.xml文件 --> <property name="mapperLocations" value="classpath*:com/hgf/ssm/dao/mapper/*.xml"></property> <property name="typeAliasesPackage" value="com.hgf.ssm.dao.po" /> <property name="configLocation" value="classpath:mybatis-configuration.xml" /> </bean>
mybatis-configuration.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC "-//ibatis.apache.org//DTD Config 3.0//EN" "http://ibatis.apache.org/dtd/ibatis-3-config.dtd"> <!-- MyBatis数据持久层配置文件 --> <configuration> <!-- 插件 --> <plugins> <!-- StatementHandler插件 --> <plugin interceptor="com.hgf.ssm.util.TestPlugin"> <property name="sqlid" value=".*Page" /> </plugin> </plugins> </configuration>
发表评论
-
spring boot+mybatis 简单的应用
2017-08-15 20:34 531项目结构 pom.xml <?xml versio ... -
struts2 重定向跳转到某个ACTION的指定方法
2017-05-31 22:17 489<result name="planShow& ... -
spring与struts2用过的注解
2017-05-31 21:57 335spring @Repository用于标注数据访问组件,即 ... -
struts2及js提示国际化
2017-04-26 16:00 557因为现在在做的项目,客户明确要求需要国际化,在网上查找了很多资 ... -
split无法分割('.')
2017-03-19 17:18 513需转义('//.') -
mybatis 批量插入简单的小例子
2017-02-13 13:48 298面试的时候面试官问了这个批量插入的问题,由于没用过也就没答出来 ... -
java反射机制
2017-01-22 21:04 368因为在学习MyBatis分页插件的时候要通过java反射机制取 ... -
MyBatis数据持久层配置文件
2017-01-22 10:36 414在学习AOS系统时发现只要在sql语句的ID后面加上page可 ... -
javaweb 通过过滤器判断用户是从PC端访问还是移动 端访问
2017-01-04 17:47 441http://blog.csdn.net/xiaoxian80 ... -
maven+ssm 整合
2016-12-07 21:59 561spring-mvc.xml <?xml versi ... -
windows下将java变成.dll文件
2016-11-30 17:41 602public class HelloWorld { publ ... -
web 一个简单的监听
2016-11-22 16:44 476<!-- 测试监听,listener-class值为监听 ... -
spring mvc 与数据库连接
2016-11-19 10:13 473servlet.xml配置: controller代码: ... -
学习spring mvc xml配置文件问题
2016-11-19 10:09 445从网上搜索配置成图下, 然后跳转jsp页面失败,经过一番折 ... -
idea14下基础maven项目配置
2016-11-19 10:08 422http://blog.csdn.net/xiaojiesu/ ... -
windows 下安装redis
2016-11-18 17:45 441因为AOS平台2.x开始使用redis,特记录下载安装过程 其 ... -
mybaits 不支持“variant”数据类型。
2016-11-18 17:41 632因公司项目,要使用sql server,然后就出现了不支持“v ... -
mybaits 无效的列类型:11111
2016-11-18 17:39 530因为公司项目原因,要将使用Mysql 的项目支持Oracle ...
相关推荐
4. 动态SQL预览:与MyBatisCodeHelper-Pro类似,MybatisX也支持动态SQL预览,但其界面更加友好,可以直接在图形界面上编辑和测试。 5. 代码生成器:MybatisX具备代码生成功能,可以一键生成Model、Mapper、Mapper ...
标题 "Eclipse集成mybatis插件" 涉及到的是在Java开发环境中,如何将MyBatis这一流行的数据持久层框架与Eclipse IDE整合,以便于提高开发效率和代码质量。MyBatis是一个轻量级的框架,它允许开发者通过SQL映射文件将...
在"mybatis插件分页测试"中,我们将关注以下关键知识点: 1. **插件配置**:在MyBatis的配置文件(mybatis-config.xml)中,我们需要声明我们的分页插件,指定拦截的目标方法和插件类。例如,可以使用PageHelper...
《IDEA的Mybatis插件详解与应用》 在现代软件开发中,集成开发环境(IDE)扮演着至关重要的角色,而IntelliJ IDEA(简称IDEA)作为Java开发的主流IDE之一,提供了丰富的功能和扩展插件,极大地提升了开发效率。其中...
总结,Spring插件的使用极大地提升了开发效率,而Mybatis插件的融入让数据库操作更为简洁。Spring的IOC和AOP特性使得代码更加灵活,Mybatis则专注于SQL,两者结合提供了高效且易于维护的数据访问解决方案。了解并...
8. **集成测试**:在MyEclipse中,你可以利用MyBatis插件对生成的代码进行单元测试,验证数据库操作的正确性。 9. **版本控制**:在团队协作中,MyBatis插件能够很好地与其他版本控制系统如Git、SVN等集成,确保...
8. **commons-collections.jar**:Apache Commons Collections库,提供了大量的集合操作和转换工具,可以在MyBatis的映射器配置或自定义插件中使用。 9. **org.springframework.web.struts-3.0.1.RELEASE-A.jar**:...
【标题】"idea-mybatis插件包"是一个专为IntelliJ IDEA开发的扩展工具,旨在提高开发人员在使用MyBatis框架时的工作效率。这个插件是针对IntelliJ IDEA社区版(free-idea)设计的,为开发者提供了一系列便利的功能,...
《IDEA mybatis插件 Free MyBatis Tool详解与应用》 在现代软件开发中,IntelliJ IDEA作为一款强大的Java集成开发环境(IDE),深受广大开发者喜爱。它提供了丰富的功能,帮助程序员提高效率,减少错误。而在使用...
《IDEA与MyBatis Plugin插件的深度解析与应用》 在当今的软件开发领域,IntelliJ IDEA(简称IDEA)以其强大的功能和友好的用户体验,深受广大Java开发者喜爱。而MyBatis作为一款优秀的持久层框架,极大地简化了...
在本案例中,我们关注的是"Mybatis开发插件",这是一款专门为MyEclipse设计的,用于简化MyBatis框架集成和使用的工具。 MyBatis是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis避免了几乎...
开发者可以在Mapper XML文件中编写带有LIMIT和OFFSET的SQL语句,或者使用MyBatis的PageHelper插件,它可以自动处理分页参数,简化代码,提高代码的可读性和复用性。 此外,项目中可能还包括了Spring Boot的Web相关...
在本文中,我们将深入探讨如何在Spring 4.0框架中集成tk.mybatis插件,以实现高效、便捷的数据库操作,特别关注增删改查(CRUD)功能的简化。tk.mybatis是一个轻量级的MyBatis扩展,旨在提供更简单、更快速的开发...
5. 测试用例:开发者可能提供了测试用例,以证明插件的正确性和有效性。 总的来说,MyBatis 插件能够极大地扩展框架的功能,使得开发者能够根据项目的具体需求进行定制化开发。"mybatis_plugin 2.92" 可能是一个为 ...
为了使用MyBatis_XML插件,首先需要在IDE中安装插件,然后在项目中配置MyBatis的相关依赖。在安装完成后,开发者可以立即体验到它带来的便利性。同时,为了更好地利用插件,开发者还需要熟悉MyBatis的配置和Mapper...
这个"Integration_2.rar"压缩包包含的是一个使用MBG进行测试的源代码项目。下面我们将深入探讨MyBatis Generator及其在实际开发中的应用。 1. **MyBatis Generator简介** MyBatis Generator(MBG)是MyBatis框架的...
首先,我们要理解Mybatis插件的工作原理。Mybatis 提供了一种插件机制,允许我们在特定的拦截点(如:执行 SQL 前后)插入自定义的行为。这些插件是基于 Java 的动态代理实现的,通过实现 `Interceptor` 接口并重写 ...
4. **SQL预览与执行**:插件提供了一个内置的SQL预览窗口,可以在不离开IDE的情况下查看和测试SQL语句的执行结果,有助于开发者及时发现并修正SQL错误。 5. **Mapper注释生成**:对于复杂的查询操作,插件会自动...
这可能是MyBatis的插件,用于扩展MyBatis的功能,例如日志插件、性能分析插件等。这些插件可以通过在MyBatis的配置文件中声明来启用。 7. IDEA常用插件的重要性: 使用IDEA的MyBatis-Plus插件,可以显著提升开发...
在IntelliJ IDEA中安装MyBatis插件,可以提供诸如代码提示、自动完成、Mapper XML映射文件关联等便利功能。安装方法是:通过IDEA的设置(Preferences on macOS, Settings on Windows/Linux)-> Plugins -> ...