All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.beetl.sql.mapper.MapperInvoke Maven / Gradle / Ivy

The newest version!
package org.beetl.sql.mapper;

import org.beetl.sql.core.SQLManager;

import java.lang.reflect.Method;

/**
 * mapper中的每个方法都会对应一个MapperInvoke类
 * 如下java包中提供各种实现
 * 
    *
  • internal:自带的实现,如简单的CRUD,{@code BaseMapper} 使用了这个包下 * 所有代码,比如insert,updateById,deleteById,all,templateOne *
  • *
  • ready:注解提供jdbc sql语句 *
    {@code
    *      @Sql("update user set status=? where id=?")
    *      public int updateUser(int status,int id);
    *       }
     *     
    *
  • *
  • template:注解提供sql模板语句语句 *
    {@code
     *      @TemplateSql("update user set status=#status# where id=#id#")
     *       public int updateUser(int id,int status);
     *       }
     *       
    *
  • *
  • identity:sql文件提供sql语句 *
    {@code
     *      // 寻找markdown里标题为updateUser的sql语句
     *       public int updateUser(int id,int status);
     *
     *       }
    *
  • *
  • springdata:一种类似springdata方式的实现,系统扩展 *
    {@code
     *      // springData风格,根据方法名自动拼写出sql语句
     *       public int updateUserStatusById(int id,int status);
     *       }
     *     
  • *
  • provider:指定类实现sql语句,是系统扩展 *
    {@code
     *       @SqlProvider(XXX.class)
     *       public int updateUserStatusById(int id,int status);
     *       }
     *     
  • *
* * MapperInvoke实现类应该是单例和线程安全,可以通过{@code @Builder}注解来扩展新的注解,参考{@Link SpringData} * @author xiandafu */ public abstract class MapperInvoke { /** * * @param sm * @param entityClass 此方法所在的mapper的映射类,通常是方法不能确定映射类型时候,采用 * @param m * @param args * @return */ public abstract Object call(SQLManager sm, Class entityClass, Method m, Object[] args); }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy