在使用mybatis 3.0的annotation之后,会产生大量mapper接口文件。
使用下面这个类可以提取这些mapper的清单
public final class MybatisMapperScanner extends ClassPathScanningCandidateComponentProvider { { addIncludeFilter(new AnnotationTypeFilter(Repository.class)); // exclude package-info.java addExcludeFilter(new TypeFilter() { @Override public boolean match(final MetadataReader metadataReader, final MetadataReaderFactory metadataReaderFactory) throws IOException { final String className = metadataReader.getClassMetadata() .getClassName(); return className.endsWith("package-info"); } }); } /** * */ public MybatisMapperScanner() { super(false); } /** * 搜索所有的mybatis mapper * * @param packageName * 包名,如"com.iteye.strongzhu" * * @return 所有的mapper清单 */ @SneakyThrows(ClassNotFoundException.class) public Set<Class<Object>> scanMapper(final String packageName) { final Set<BeanDefinition> components = findCandidateComponents(packageName); final Set<Class<Object>> mybatisMapperList = new HashSet<Class<Object>>(); for (final BeanDefinition component : components) { @SuppressWarnings("unchecked") final Class<Object> cls = (Class<Object>) Class.forName(component .getBeanClassName()); mybatisMapperList.add(cls); } return mybatisMapperList; } /* * (non-Javadoc) * * @see org.springframework.context.annotation. * ClassPathScanningCandidateComponentProvider * #isCandidateComponent(org.springframework * .beans.factory.annotation.AnnotatedBeanDefinition) */ @Override protected boolean isCandidateComponent( final AnnotatedBeanDefinition beanDefinition) { return (beanDefinition.getMetadata().isInterface() && beanDefinition .getMetadata().isIndependent()); } }
相关推荐
TkMybatis通用Mapper逆向工程代码生成工具是Java开发中的一个高效实用的工具,它基于Maven项目构建,主要用于简化数据库表与Java实体类、Mapper接口及XML映射文件之间的同步工作。通过此工具,开发者可以自动生成...
3. **Mapper接口和Mapper XML文件**: MyBatis通过Mapper接口与XML配置文件(或注解)将Java方法与SQL语句绑定。在XML文件中,我们可以编写复杂的SQL,包括条件判断、动态SQL等。 4. **Mapper代理**: 当调用Mapper...
本章主要目标是实现对Mapper XML文件的解析,提取SQL信息,并创建对应的Mapper接口代理,以便在程序中调用。 在Mybatis中,Mapper XML文件包含了SQL语句、参数类型、返回类型以及各种动态条件。这些信息是与Mapper...
在运行时,Mybatis 使用动态代理将Mapper接口方法调用转换为实际的SQL执行。 5. **Executor**: 执行器是Mybatis的执行引擎,负责处理SQL的执行和结果映射。有SimpleExecutor、ReuseExecutor和BatchExecutor三种,...
MyBatis的逆向工程是开发过程中的一种高效工具,它能够帮助开发者从现有的数据库模式自动生成对应的Java代码,包括实体类、Mapper接口和XML配置文件等。这一特性大大减轻了手动编写这些代码的工作量,提高了开发效率...
它能够根据数据库中的表结构自动创建对应的实体类、Mapper接口、Mapper XML文件以及Service层代码,从而减轻了开发者的手动编写工作。 在MyBatis逆向工程中,主要涉及以下几个核心概念: 1. **逆向工程**:逆向...
MyBatis逆向工程是一种高效的方法,用于从现有的数据库中自动生成对应的Java实体类、Mapper接口和XML配置文件,极大地简化了开发过程,避免了手动编写这些基础代码的繁琐工作。这一技术主要基于MyBatis的代码生成器...
MyBatis逆向工程生成是数据库表到Java实体类、Mapper接口及XML配置文件的一种自动化工具,极大地提高了开发效率。这个过程涉及到多个步骤和技术概念,接下来我会详细解释这些知识点。 1. **MyBatis框架**: MyBatis...
Mybatis逆向工程是开发过程中一个非常实用的工具,它能帮助开发者自动生成与数据库表对应的Java实体类(POJO)、Model以及Mapper接口和XML配置文件,极大地提高了开发效率。这个插件包专为MySQL数据库设计,使得在...
MyBatis逆向工程是开发过程中的一项重要工具,它允许开发者通过配置,自动根据数据库表结构生成对应的Java实体类、Mapper接口以及XML映射文件,极大地提高了开发效率。这一特性在快速构建数据访问层时尤为有用,避免...
1. MyBatis Generator(MBG):MBG是MyBatis官方提供的一个代码生成器,可以根据数据库表信息自动生产Java模型类、Mapper接口以及对应的XML配置文件。这些生成的代码遵循MyBatis框架的标准,可以直接在项目中使用。 ...
1. **理解MyBatis架构**:首先,要了解MyBatis的整体架构,包括SqlSessionFactory、SqlSession、Executor、Mapper接口和Mapper XML配置等组件的作用和相互关系。 2. **动态SQL解析**:MyBatis的动态SQL是其一大特点...
MBG是MyBatis框架的一个扩展,通过读取数据库元数据,可以自动生成DAO层的Java实体类、Mapper接口及XML配置文件。这样开发者就不必手动编写这些重复性高且相对固定的代码,从而节省大量时间,提高开发效率。 2. **...
MyBatis逆向生成工具包是一个实用的Java开发辅助工具,专为MyBatis框架设计,旨在自动化数据库模型到实体类、Mapper接口以及XML映射文件的生成过程。这一工具包显著减少了开发者手动编写这些常见代码的时间,提高了...
MyBatis逆向工程是一种强大的工具,它可以帮助开发者自动生成Java实体类、Mapper接口和对应的XML配置文件,大大减轻了数据库表与Java代码之间映射的工作量。在本项目中,"mybatis逆向工程生成java代码和xml配置(原码...
逆向工程则是从现有的数据库结构出发,自动生成对应的Java实体类、Mapper接口以及XML配置文件,从而避免手动编写这些繁琐的代码。下面我们将详细探讨这两个概念及其在实际开发中的应用。 首先,通用Mapper插件...
在"elitel-tool-mybatis"这个压缩包中,可能包含了一套完整的工具链,用于从MySQL数据库中提取表结构,然后自动生成与这些表对应的MyBatis实体类和Mapper接口。实体类通常会包含数据库表的字段属性,而Mapper接口则...